Converts a 1-, 4-, 8-, 16-, 24-, or 32-bit image to an 8-bit, 12-bit, or 16-bit grayscale image.
Syntax
Example
This example will load a 24-bit image then convert it to a grayscale image with 8, 12 and 16 bits/pixel
Visual Basic | Copy Code |
---|
Public Sub GrayscaleCommandExample()
RasterCodecs.Startup()
Dim codecs As RasterCodecs = New RasterCodecs()
Dim srcFileName As String = LeadtoolsExamples.Common.ImagesPath.Path + "Image1.cmp"
Dim destFileName8 As String = LeadtoolsExamples.Common.ImagesPath.Path + "Image1_grayscale8.jpg"
Dim destFileName12 As String = LeadtoolsExamples.Common.ImagesPath.Path + "Image1_grayscale12.jpg"
Dim destFileName16 As String = LeadtoolsExamples.Common.ImagesPath.Path + "Image1_grayscale16.jpg"
Dim image As RasterImage = codecs.Load(srcFileName, 24, CodecsLoadByteOrder.Bgr, 1, 1)
Console.WriteLine("Grsyscale mode of original image = {0}", image.GrayscaleMode)
Dim command As GrayscaleCommand = New GrayscaleCommand()
command.BitsPerPixel = 8
command.Run(image)
Console.WriteLine("Grsyscale mode after grayscale command with 8 bpp = {0}", image.GrayscaleMode)
codecs.Options.Jpeg.Save.QualityFactor = 2
codecs.Save(image, destFileName8, RasterImageFormat.Jpeg, 8)
image.Dispose()
image = codecs.Load(srcFileName, 24, CodecsLoadByteOrder.Bgr, 1, 1)
command.BitsPerPixel = 12
command.Run(image)
Console.WriteLine("Grsyscale mode after grayscale command with 12 bpp = {0}", image.GrayscaleMode)
codecs.Options.Jpeg.Save.QualityFactor = 2
codecs.Save(image, destFileName12, RasterImageFormat.Jpeg, 12)
image.Dispose()
image = codecs.Load(srcFileName, 24, CodecsLoadByteOrder.Bgr, 1, 1)
command.BitsPerPixel = 16
command.Run(image)
Console.WriteLine("Grsyscale mode after grayscale command with 16 bpp = {0}", image.GrayscaleMode)
codecs.Options.Jpeg.Save.QualityFactor = 0
codecs.Save(image, destFileName16, RasterImageFormat.Jpeg, 16)
image.Dispose()
image.Dispose()
RasterCodecs.Shutdown()
End Sub |
C# | Copy Code |
---|
public void GrayscaleCommandExample() { RasterCodecs.Startup(); RasterCodecs codecs = new RasterCodecs(); string srcFileName = LeadtoolsExamples.Common.ImagesPath.Path + "Image1.cmp"; string destFileName8 = LeadtoolsExamples.Common.ImagesPath.Path + "Image1_grayscale8.jpg"; string destFileName12 = LeadtoolsExamples.Common.ImagesPath.Path + "Image1_grayscale12.jpg"; string destFileName16 = LeadtoolsExamples.Common.ImagesPath.Path + "Image1_grayscale16.jpg"; // Load the source image from disk as 24-bits/pixel RasterImage image = codecs.Load(srcFileName, 24, CodecsLoadByteOrder.Bgr, 1, 1); // Check the grayscale mode Console.WriteLine("Grsyscale mode of original image = {0}", image.GrayscaleMode); // Convert to 8-bit grayscale GrayscaleCommand command = new GrayscaleCommand(); command.BitsPerPixel = 8; command.Run(image); // Check the grayscale mode Console.WriteLine("Grsyscale mode after grayscale command with 8 bpp = {0}", image.GrayscaleMode); // Save it to disk codecs.Options.Jpeg.Save.QualityFactor = 2; codecs.Save(image, destFileName8, RasterImageFormat.Jpeg, 8); image.Dispose(); // Load the image again this time grayscale to 12-bits/pixel image = codecs.Load(srcFileName, 24, CodecsLoadByteOrder.Bgr, 1, 1); command.BitsPerPixel = 12; command.Run(image); Console.WriteLine("Grsyscale mode after grayscale command with 12 bpp = {0}", image.GrayscaleMode); codecs.Options.Jpeg.Save.QualityFactor = 2; codecs.Save(image, destFileName12, RasterImageFormat.Jpeg, 12); image.Dispose(); // Load the image again this time grayscale to 16-bits/pixel image = codecs.Load(srcFileName, 24, CodecsLoadByteOrder.Bgr, 1, 1); command.BitsPerPixel = 16; command.Run(image); Console.WriteLine("Grsyscale mode after grayscale command with 16 bpp = {0}", image.GrayscaleMode); // When saving 16-bit jpegs, you must use lossless quality factor codecs.Options.Jpeg.Save.QualityFactor = 0; codecs.Save(image, destFileName16, RasterImageFormat.Jpeg, 16); image.Dispose(); // Clean Up image.Dispose(); RasterCodecs.Shutdown(); } |
Remarks
Inheritance Hierarchy
Requirements
Target Platforms: Microsoft .NET Framework 3.0, Windows XP, Windows Server 2003 family, Windows Server 2008 family
See Also