Provides extra options for loading and saving RAW Data images.
Object Model
Syntax
Visual Basic (Declaration) | |
---|
Public Class CodecsRawOptions |
C# | |
---|
public class CodecsRawOptions |
Managed Extensions for C++ | |
---|
public __gc class CodecsRawOptions |
C++/CLI | |
---|
public ref class CodecsRawOptions |
Example
Visual Basic | Copy Code |
---|
CodecsRawOptions
Private Structure RawData
Public Width As Integer
Public Height As Integer
Public BitsPerPixel As Integer
Public ViewPerspective As RasterViewPerspective
Public Order As RasterByteOrder
Public XResolution As Integer
Public YResolution As Integer
Public Offset As Integer
Public Padding As Boolean
Public ReverseBits As Boolean
End Structure
Private myRawData As RawData
Private Sub codecs_LoadInformation(ByVal sender As Object, ByVal e As CodecsLoadInformationEventArgs)
e.Format = RasterImageFormat.Raw
e.Width = myRawData.Width
e.Height = myRawData.Height
e.BitsPerPixel = myRawData.BitsPerPixel
e.XResolution = myRawData.XResolution
e.YResolution = myRawData.YResolution
e.Offset = myRawData.Offset
If myRawData.Padding Then
e.Pad4 = True
End If
e.Order = myRawData.Order
If myRawData.ReverseBits Then
e.LeastSignificantBitFirst = True
End If
e.ViewPerspective = myRawData.ViewPerspective
If e.BitsPerPixel <= 8 Then
Dim colors As Integer = 1 << e.BitsPerPixel
Dim palette As RasterColor() = New RasterColor(colors - 1) {}
Dim i As Integer = 0
Do While i < palette.Length
Dim val As Byte = CByte((i * 255) / (colors - 1))
palette(i) = New RasterColor(val, val, val)
i += 1
Loop
e.SetPalette(palette)
End If
End Sub
Public Sub CodecsRawOptionsExample()
RasterCodecs.Startup()
Dim codecs As RasterCodecs = New RasterCodecs()
Dim image As RasterImage = codecs.Load("C:\Program Files\LEAD Technologies\LEADTOOLS 15\Images\Image1.cmp")
codecs.Options.Raw.Save.Pad4 = True
codecs.Options.Raw.Save.ReverseBits = True
codecs.Options.Save.OptimizedPalette = True
Dim rawFileName As String = "C:\Program Files\LEAD Technologies\LEADTOOLS 15\Images\Test.raw"
codecs.Save(image, rawFileName, RasterImageFormat.Raw, 0)
myRawData = New RawData()
myRawData.Width = image.Width
myRawData.Height = image.Height
myRawData.BitsPerPixel = image.BitsPerPixel
myRawData.ViewPerspective = image.ViewPerspective
myRawData.Order = image.Order
myRawData.XResolution = image.XResolution
myRawData.YResolution = image.YResolution
myRawData.Offset = 0
myRawData.Padding = True
myRawData.ReverseBits = True
image.Dispose()
AddHandler codecs.LoadInformation, AddressOf codecs_LoadInformation
image = codecs.Load(rawFileName)
codecs.Save(image, "C:\Program Files\LEAD Technologies\LEADTOOLS 15\Images\raw.bmp", RasterImageFormat.Bmp, image.BitsPerPixel)
RemoveHandler codecs.LoadInformation, AddressOf codecs_LoadInformation
image.Dispose()
codecs.Dispose()
RasterCodecs.Shutdown()
End Sub |
C# | Copy Code |
---|
CodecsRawOptions private struct RawData { public int Width; // Width of image public int Height; // Height of image public int BitsPerPixel; // Bits per pixel of image--if palettized, a gray palette is generated public RasterViewPerspective ViewPerspective; // View perspective of raw data (TopLeft, BottomLeft, etc) public RasterByteOrder Order; // Rgb or Bgr public int XResolution; // Horizontal resolution in DPI public int YResolution; // Vertical resolution in DPI public int Offset; // Offset into file where raw data begins public bool Padding; // true if each line of data is padded to four bytes public bool ReverseBits; // true if the bits of each byte are reversed } private RawData myRawData; private void codecs_LoadInformation(object sender, CodecsLoadInformationEventArgs e) { // Set the information e.Format = RasterImageFormat.Raw; e.Width = myRawData.Width; e.Height = myRawData.Height; e.BitsPerPixel = myRawData.BitsPerPixel; e.XResolution = myRawData.XResolution; e.YResolution = myRawData.YResolution; e.Offset = myRawData.Offset; if (myRawData.Padding) e.Pad4 = true; e.Order = myRawData.Order; if (myRawData.ReverseBits) e.LeastSignificantBitFirst = true; e.ViewPerspective = myRawData.ViewPerspective; // If image is palettized create a grayscale palette if (e.BitsPerPixel <= 8) { int colors = 1 << e.BitsPerPixel; RasterColor[] palette = new RasterColor[colors]; for (int i = 0; i < palette.Length; i++) { byte val = (byte)((i * 255) / (colors - 1)); palette[i] = new RasterColor(val, val, val); } e.SetPalette(palette); } } public void CodecsRawOptionsExample() { RasterCodecs.Startup(); RasterCodecs codecs = new RasterCodecs(); // First, load a JPEG or CMP file RasterImage image = codecs.Load(@"C:\Program Files\LEAD Technologies\LEADTOOLS 15\Images\Image1.cmp"); // Save this image as RAW data // Set RAW options codecs.Options.Raw.Save.Pad4 = true; codecs.Options.Raw.Save.ReverseBits = true; codecs.Options.Save.OptimizedPalette = true; string rawFileName = @"C:\Program Files\LEAD Technologies\LEADTOOLS 15\Images\Test.raw"; codecs.Save(image, rawFileName, RasterImageFormat.Raw, 0); // Save information about this image so we can use it to load the RAW file myRawData = new RawData(); myRawData.Width = image.Width; myRawData.Height = image.Height; myRawData.BitsPerPixel = image.BitsPerPixel; myRawData.ViewPerspective = image.ViewPerspective; myRawData.Order = image.Order; myRawData.XResolution = image.XResolution; myRawData.YResolution = image.YResolution; myRawData.Offset = 0; myRawData.Padding = true; myRawData.ReverseBits = true; // We dont need the image anymore image.Dispose(); // Now load this RAW image back // First subscribe to the LoadInformation event so we can set the image information codecs.LoadInformation += new EventHandler<CodecsLoadInformationEventArgs>(codecs_LoadInformation); // Load the image image = codecs.Load(rawFileName); codecs.Save(image, @"C:\Program Files\LEAD Technologies\LEADTOOLS 15\Images\raw.bmp", RasterImageFormat.Bmp, image.BitsPerPixel); // Unsubscribe from the event codecs.LoadInformation -= new EventHandler<CodecsLoadInformationEventArgs>(codecs_LoadInformation); // Clean up image.Dispose(); codecs.Dispose(); RasterCodecs.Shutdown(); } |
Inheritance Hierarchy
Requirements
Target Platforms: Microsoft .NET Framework 2.0, Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 family
See Also