Converts image data in a RasterImage based on its ICC profile and sets the output as a RasterImage.
public void ConvertImage(
RasterImage srcImage,
RasterImage dstImage
)
public:
static void ConvertImage(
RasterImage^ srcImage,
RasterImage^ dstImage
)
srcImage
A RasterImage object holding the input data. The source RasterImage provides an ICC profile that is applied for this conversion.
dstImage
A RasterImage object that will hold the converted data.
There are other conversion methods available in the LEADTOOLS Color Conversion toolkit, however, to get optimal conversion results use ConvertImage(RasterImage,RasterImage) or ConvertImage(RasterImage,RasterImage) as they rely on the embedded ICC profile of the source RasterImage. Here is a scenario where these two methods are invaluable:
srcImage and dstImage should be allocated and have the same width and height. Both images should be 24-bit.
The conversion engine should have already been started by calling Start. The input and output formats for the conversion engine should be BGR/RGB for predictable results. Other types of conversion (LAB, CMYK, etc) might have undesired results.
You can perform the conversion in-place (storing the output in the source bitmap) using ConvertImage(RasterImage).
This example loads a source file containing an embedded ICC profile. The image data will be converted using the ConvertImage(RasterImage,RasterImage) method.
using Leadtools;
using Leadtools.Codecs;
using Leadtools.ColorConversion;
using Leadtools.ImageProcessing;
public string outputFile = Path.Combine(LEAD_VARS.ImagesDir, "ConvertImageToImage.png");
public void ConvertImageToImageExample()
{
// StartUp the ColorConversion.
RasterColorConverterEngine.Startup();
// Input file name
string inputFileName = Path.Combine(LEAD_VARS.ImagesDir, "11800-Embedded_RGB.png");
// Load the original image
using (RasterCodecs codecs = new RasterCodecs())
using (RasterImage srcImage = codecs.Load(inputFileName, 24, CodecsLoadByteOrder.Bgr, 1, 1))
{
// Set the active method
ConversionParameters conversionParameters = new ConversionParameters();
conversionParameters.Method = ConversionMethodFlags.UseCustomIcc;
conversionParameters.ActiveMethod = ConversionMethodFlags.UseCustomIcc;
// Read the profile from image on disk
bool hasProfile = IccProfileExtended.ImageHasIccProfile(inputFileName, 1);
Debug.WriteLine("Profile present:\t" + hasProfile);
IccProfileExtended icc = new IccProfileExtended();
icc.ReadFromImage(inputFileName, 1);
// Use the image profile as the input profile
conversionParameters.InputProfileData = icc.Data;
using (RasterImage dstImage = srcImage.Clone())
using (RasterColorConverterEngine colorConverterEngine = new RasterColorConverterEngine())
{
// Convert the image
colorConverterEngine.Start(ConversionColorFormat.Bgr, ConversionColorFormat.Bgr, conversionParameters);
colorConverterEngine.ConvertImage(srcImage, dstImage);
colorConverterEngine.Stop();
codecs.Save(dstImage, outputFile, srcImage.OriginalFormat, srcImage.BitsPerPixel);
}
// Shutdown the ColorConversion
RasterColorConverterEngine.Shutdown();
}
}
static class LEAD_VARS
{
public const string ImagesDir = @"C:\LEADTOOLS23\Resources\Images";
}
RasterColorConverterEngine 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.