LEADTOOLS (Leadtools assembly) Send comments on this topic. | Back to Introduction - All Topics | Help Version 17.0.3.29
GetTrueColorValue Method
See Also 
Leadtools Namespace > RasterImage Class : GetTrueColorValue Method



color
a RasterColor that specifies the source color
color
a RasterColor that specifies the source color
Gets the true (RGB) value of the specified color based on the current image palette. Supported in Silverlight, Windows Phone 7

Syntax

Visual Basic (Declaration) 
Public Function GetTrueColorValue( _
   ByVal color As RasterColor _
) As RasterColor
Visual Basic (Usage)Copy Code
Dim instance As RasterImage
Dim color As RasterColor
Dim value As RasterColor
 
value = instance.GetTrueColorValue(color)
C# 
public RasterColor GetTrueColorValue( 
   RasterColor color
)
C++/CLI 
public:
RasterColor GetTrueColorValue( 
   RasterColor color
) 

Parameters

color
a RasterColor that specifies the source color

Return Value

A RasterColor that is guaranteed to be a true color (has RGB value)

Example

This example will create transparent GIF file

Visual BasicCopy Code
Public Sub CreateTransparentGifExample()
      ' Create a 24 bpp image, we will draw on it first then convert it to 8 bpp
      Dim imageWidth As Integer = 256
      Dim imageHeight As Integer = 256
      Dim image As New RasterImage( _
         RasterMemoryFlags.Conventional, _
         imageWidth, _
         imageHeight, _
         24, _
         RasterByteOrder.Bgr, _
         RasterViewPerspective.BottomLeft, _
         Nothing, _
         IntPtr.Zero, _
         0)
      ' Fill this image with magenta color and draw some random ellipses on top
      Dim hdc As IntPtr = RasterImagePainter.CreateLeadDC(image)
      Dim g As Graphics = Graphics.FromHdc(hdc)

      g.FillRectangle(Brushes.Magenta, 0, 0, imageWidth, imageHeight)

      Const ellipseWidth As Integer = 40
      Const ellipseHeight As Integer = 40

      Dim r As New Random()

      For i As Integer = 0 To 39
         Dim x As Integer = r.Next(imageWidth - ellipseWidth)
         Dim y As Integer = r.Next(imageHeight - ellipseHeight)

         Dim clr As Color = Color.FromArgb(r.Next(256), r.Next(256), r.Next(256))
         Dim brush As New SolidBrush(clr)
         g.FillEllipse(brush, x, y, ellipseWidth, ellipseHeight)
         brush.Dispose()
      Next

      g.Dispose()
      RasterImagePainter.DeleteLeadDC(hdc)

      ' Convert this image to 8 bits/pixel
      Dim cmd As New ColorResolutionCommand( _
         ColorResolutionCommandMode.InPlace, _
         8, _
         RasterByteOrder.Rgb, _
         RasterDitheringMethod.None, _
         ColorResolutionCommandPaletteFlags.Optimized, _
         Nothing)
      cmd.Run(image)

      ' Find the Magenta color and set it as the transparent color
      Dim transparentColor As RasterColor = RasterColor.FromKnownColor(RasterKnownColor.Magenta)

      ' Get the true color used for Magenta inside this image (a palette index)
      transparentColor = image.TranslateColor(image, transparentColor)

      image.Transparent = True
      image.TransparentColor = transparentColor

      ' Initialize the RasterCodecs object
      Dim codecs As New RasterCodecs()

      ' Save this image as GIF
      Dim fileName As String = Path.Combine(LEAD_VARS.ImagesDir, "TransparentEllipses.gif")
      codecs.Save(image, fileName, RasterImageFormat.Gif, 8)

      ' Clean up
      image.Dispose()
      codecs.Dispose()
   End Sub

Public NotInheritable Class LEAD_VARS
   Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images"
End Class
C#Copy Code
public void CreateTransparentGifExample()
   {
      // Create a 24 bpp image, we will draw on it first then convert it to 8 bpp
      int imageWidth = 256;
      int imageHeight = 256;
      RasterImage image = new RasterImage(
         RasterMemoryFlags.Conventional,
         imageWidth,
         imageHeight,
         24,
         RasterByteOrder.Bgr,
         RasterViewPerspective.BottomLeft,
         null,
         IntPtr.Zero,
         0);

      // Fill this image with magenta color and draw some random ellipses on top
      IntPtr hdc = RasterImagePainter.CreateLeadDC(image);
      Graphics g = Graphics.FromHdc(hdc);

      g.FillRectangle(Brushes.Magenta, 0, 0, imageWidth, imageHeight);

      const int ellipseWidth = 40;
      const int ellipseHeight = 40;

      Random r = new Random();

      for(int i = 0; i < 40; i++)
      {
         int x = r.Next(imageWidth - ellipseWidth);
         int y = r.Next(imageHeight - ellipseHeight);

         Color clr = Color.FromArgb(r.Next(256), r.Next(256), r.Next(256));
         Brush brush = new SolidBrush(clr);
         g.FillEllipse(brush, x, y, ellipseWidth, ellipseHeight);
         brush.Dispose();
      }

      g.Dispose();
      RasterImagePainter.DeleteLeadDC(hdc);

      // Convert this image to 8 bits/pixel
      ColorResolutionCommand cmd = new ColorResolutionCommand(
         ColorResolutionCommandMode.InPlace,
         8,
         RasterByteOrder.Rgb,
         RasterDitheringMethod.None,
         ColorResolutionCommandPaletteFlags.Optimized,
         null);
      cmd.Run(image);

      // Find the Magenta color and set it as the transparent color
      RasterColor transparentColor = RasterColor.FromKnownColor(RasterKnownColor.Magenta);

      // Get the true color used for Magenta inside this image (a palette index)
      transparentColor = image.TranslateColor(image, transparentColor);

      image.Transparent = true;
      image.TransparentColor = transparentColor;

      // Initialize the RasterCodecs object
      RasterCodecs codecs = new RasterCodecs();

      // Save this image as GIF
      string fileName = Path.Combine(LEAD_VARS.ImagesDir,"TransparentEllipses.gif");
      codecs.Save(image, fileName, RasterImageFormat.Gif, 8);

      // Clean up
      image.Dispose();
      codecs.Dispose();
   }

static class LEAD_VARS
{
   public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images";
}
SilverlightCSharpCopy Code
SilverlightVBCopy Code

Remarks

Use this method to translate a color that is really a palette index (the value of the RasterColor.IsPaletteIndex property is true) to a true RGB color value

The apposite of this method is TranslateColor(RasterImage,Int32).

Requirements

Target Platforms: Silverlight, Windows XP, Windows Server 2003 family, Windows Server 2008 family, Windows Vista, Windows 7, MAC OS/X (Intel Only), Windows Phone 7

See Also