public static void MakeCompatible(
RasterImage image,
PixelFormat pixelFormat,
bool noPalette
)
image
The source image.
pixelFormat
The pixel format to use.
noPalette
Fails if the image is palletized.
Pass PixelFormat.DontCare to the pixelFormat parameter to have the method choose the appropriate pixel format.
For a Leadtools.RasterImage to be compatible with a GDI+ image it needs the following:
This method will make one or more of the changes above to the Leadtools.RasterImage if needed.
For more information refer to RasterImage and GDI/GDI+.
using Leadtools;
using Leadtools.Codecs;
using Leadtools.Drawing;
using Leadtools.ImageProcessing;
using Leadtools.ImageProcessing.Color;
public void ConvertToImageExample()
{
RasterCodecs codecs = new RasterCodecs();
string srcFileName = Path.Combine(LEAD_VARS.ImagesDir, "Image1.cmp");
string destFileName1 = Path.Combine(LEAD_VARS.ImagesDir, "GdiPlusImage.bmp");
string destFileName2 = Path.Combine(LEAD_VARS.ImagesDir, "Image1_FromGdiPlusImage.bmp");
// Load the image
using (RasterImage srcImage = codecs.Load(srcFileName))
{
// Convert to GDI+ image
ImageIncompatibleReason reason = RasterImageConverter.TestCompatible(srcImage, true);
PixelFormat pf = RasterImageConverter.GetNearestPixelFormat(srcImage);
Console.WriteLine("TestCompatible: {0}", reason);
Console.WriteLine("GetNearestPixelFormat:{0}", pf);
if (reason != ImageIncompatibleReason.Compatible)
{
RasterImageConverter.MakeCompatible(srcImage, pf, true);
}
using (Image destImage1 = RasterImageConverter.ConvertToImage(srcImage, ConvertToImageOptions.None))
{
// Save this image to disk
destImage1.Save(destFileName1, ImageFormat.Bmp);
// Convert the GDI+ image back to a RasterImage
using (RasterImage destImage2 = RasterImageConverter.ConvertFromImage(destImage1, ConvertFromImageOptions.None))
{
// Save it to disk
codecs.Save(destImage2, destFileName2, RasterImageFormat.Bmp, 24);
}
}
}
// Clean up
codecs.Dispose();
}
static class LEAD_VARS
{
public const string ImagesDir = @"C:\LEADTOOLS23\Resources\Images";
}