Products | Support | Email a link to this topic. | Send comments on this topic. | Back to Introduction - All Topics | Help Version 19.0.6.28
|
Leadtools Namespace > RasterImage Class : GetTrueColorValue Method |
public RasterColor GetTrueColorValue( RasterColor color )
'Declaration
Public Function GetTrueColorValue( _ ByVal color As RasterColor _ ) As RasterColor
'Usage
Dim instance As RasterImage Dim color As RasterColor Dim value As RasterColor value = instance.GetTrueColorValue(color)
public RasterColor GetTrueColorValue( RasterColor color )
- (LTRasterColor *)getTrueColorValue:(LTRasterColor *)color
public RasterColor getTrueColorValue(RasterColor color)
function Leadtools.RasterImage.GetTrueColorValue( color )
public: RasterColor GetTrueColorValue( RasterColor color )
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.
This example will create transparent GIF file
Imports Leadtools Imports Leadtools.Codecs Imports Leadtools.ImageProcessing Imports Leadtools.Drawing 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
using Leadtools; using Leadtools.Codecs; using Leadtools.ImageProcessing; using Leadtools.Drawing; public void CreateTransparentGifExample() { // Create a 24 bpp image, we will draw on it first then convert it to 8 bpp using (RasterImage image = new RasterImage( RasterMemoryFlags.Conventional, 256, 256, 8, RasterByteOrder.Bgr, RasterViewPerspective.BottomLeft, null, IntPtr.Zero, 0)) { Assert.IsNotNull(image); // Fill the image with the transparent color. RasterColor transparentColor = RasterColor.FromKnownColor(RasterKnownColor.Magenta); new FillCommand(transparentColor).Run(image); image.Transparent = true; // Get the true color used for Magenta inside this image (a palette index) image.TransparentColor = image.TranslateColor(image, transparentColor); // Draw on the image, else the entire image will be transparent. DrawEllipses(image); // Save this image as GIF string fileName = Path.Combine(ImagesPath.Path, "TransparentEllipses.gif"); using (RasterCodecs codecs = new RasterCodecs()) { codecs.Save(image, fileName, RasterImageFormat.Gif, 8); } } } void DrawEllipses(RasterImage image) { // Fill this image with magenta color and draw some random ellipses on top const int ellipseWidth = 40; const int ellipseHeight = 40; IntPtr hdc = IntPtr.Zero; try { hdc = RasterImagePainter.CreateLeadDC(image); Assert.IsFalse(hdc == IntPtr.Zero); using (Graphics g = Graphics.FromHdc(hdc)) { Assert.IsNotNull(g); Random r = new Random(); for (int i = 0; i < 40; i++) { int x = r.Next(image.Width - ellipseWidth); int y = r.Next(image.Height - ellipseHeight); Color clr = Color.FromArgb(r.Next(256), r.Next(256), r.Next(256)); using (Brush brush = new SolidBrush(clr)) { g.FillEllipse(brush, x, y, ellipseWidth, ellipseHeight); } } } } finally { // Make sure to delete the handle to the DC. if (hdc != IntPtr.Zero) RasterImagePainter.DeleteLeadDC(hdc); } }
using Leadtools; using Leadtools.Codecs; using Leadtools.ImageProcessing; public async Task 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); // Fill this image with magenta color FillCommand fillCmd = new FillCommand(RasterColorHelper.FromKnownColor(RasterKnownColor.Magenta)); fillCmd.Run(image); RasterRegionXForm xform = new RasterRegionXForm(); xform.ViewPerspective = RasterViewPerspective.TopLeft; xform.XOffset = 0; xform.YOffset = 0; xform.XScalarDenominator = 1; xform.XScalarNumerator = 1; xform.YScalarDenominator = 1; xform.YScalarNumerator = 1; image.AddRectangleToRegion(xform, LeadRectHelper.Create(0, 0, 100, 100), RasterRegionCombineMode.Set); FillCommand fillRgnCmd = new FillCommand(RasterColorHelper.FromKnownColor(RasterKnownColor.Black)); fillRgnCmd.Run(image); // Convert this image to 8 bits/pixel ColorResolutionCommand colorResCmd = new ColorResolutionCommand( ColorResolutionCommandMode.InPlace, 8, RasterByteOrder.Rgb, RasterDitheringMethod.None, ColorResolutionCommandPaletteFlags.Optimized, null); colorResCmd.Run(image); // Find the Magenta color and set it as the transparent color RasterColor transparentColor = RasterColorHelper.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 StorageFile saveFile = await Tools.AppLocalFolder.CreateFileAsync("TransparentEllipses.gif"); ILeadStream saveStream = LeadStreamFactory.Create(saveFile); await codecs.SaveAsync(image, saveStream, RasterImageFormat.Gif, 8); // Clean up image.Dispose(); codecs.Dispose(); }