public RasterColor GetTrueColorValue(
RasterColor color
)
Public Function GetTrueColorValue( _
ByVal color As RasterColor _
) As RasterColor
- (LTRasterColor *)getTrueColorValue:(LTRasterColor *)color
public RasterColor getTrueColorValue(RasterColor color)
public:
RasterColor GetTrueColorValue(
RasterColor color
)
color
a RasterColor that specifies the source color
A RasterColor that is guaranteed to be a true color (has RGB value)
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 opposite of this method is TranslateColor.
This example will create transparent GIF file
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(LEAD_VARS.ImagesDir, "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);
}
}
static class LEAD_VARS
{
public const string ImagesDir = @"C:\LEADTOOLS21\Resources\Images";
}
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:\LEADTOOLS21\Resources\Images"
End Class
Help Collections
Raster .NET | C API | C++ Class Library | HTML5 JavaScript
Document .NET | C API | C++ Class Library | HTML5 JavaScript
Medical .NET | C API | C++ Class Library | HTML5 JavaScript
Medical Web Viewer .NET
Multimedia
Direct Show .NET | C API | Filters
Media Foundation .NET | C API | Transforms
Supported Platforms
.NET, Java, Android, and iOS/macOS Assemblies
Imaging, Medical, and Document
C API/C++ Class Libraries
Imaging, Medical, and Document
HTML5 JavaScript Libraries
Imaging, Medical, and Document
Your email has been sent to support! Someone should be in touch! If your matter is urgent please come back into chat.
Chat Hours:
Monday - Friday, 8:30am to 6pm ET
Thank you for your feedback!
Please fill out the form again to start a new chat.
All agents are currently offline.
Chat Hours:
Monday - Friday
8:30AM - 6PM EST
To contact us please fill out this form and we will contact you via email.