Leadtools.Codecs Namespace : CodecsRawOptions Class |
public class CodecsRawOptions
'Declaration Public Class CodecsRawOptions
'Usage Dim instance As CodecsRawOptions
public sealed class CodecsRawOptions
function Leadtools.Codecs.CodecsRawOptions()
public ref class CodecsRawOptions
Private Structure RawData Public Width As Integer ' Width of image Public Height As Integer ' Height of image Public BitsPerPixel As Integer ' Bits per pixel of image--if palettized, a gray palette is generated Public ViewPerspective As RasterViewPerspective ' View perspective of raw data (TopLeft, BottomLeft, etc) Public Order As RasterByteOrder ' Rgb or Bgr Public XResolution As Integer ' Horizontal resolution in DPI Public YResolution As Integer ' Vertical resolution in DPI Public Offset As Integer ' Offset into file where raw data begins Public Padding As Boolean ' true if each line of data is padded to four bytes Public ReverseBits As Boolean ' true if the bits of each byte are reversed End Structure Private myRawData As RawData Private Sub codecs_LoadInformation(ByVal sender As Object, ByVal e As CodecsLoadInformationEventArgs) ' 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 Then e.Pad4 = True End If e.Order = myRawData.Order If myRawData.ReverseBits Then e.LeastSignificantBitFirst = True End If e.ViewPerspective = myRawData.ViewPerspective ' If image is palettized create a grayscale palette 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() Dim codecs As RasterCodecs = New RasterCodecs() ' First, load a JPEG or CMP file Dim image As RasterImage = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "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 Dim rawFileName As String = Path.Combine(LEAD_VARS.ImagesDir, "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 AddHandler codecs.LoadInformation, AddressOf codecs_LoadInformation ' Load the image image = codecs.Load(rawFileName) codecs.Save(image, Path.Combine(LEAD_VARS.ImagesDir, "raw.bmp"), RasterImageFormat.Bmp, image.BitsPerPixel) ' Unsubscribe from the event RemoveHandler codecs.LoadInformation, AddressOf codecs_LoadInformation ' Clean up image.Dispose() codecs.Dispose() End Sub Public NotInheritable Class LEAD_VARS Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images" End Class
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 codecs = new RasterCodecs(); // First, load a JPEG or CMP file RasterImage image = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "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 = Path.Combine(LEAD_VARS.ImagesDir, "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, Path.Combine(LEAD_VARS.ImagesDir, "raw.bmp"), RasterImageFormat.Bmp, image.BitsPerPixel); // Unsubscribe from the event codecs.LoadInformation -= new EventHandler<CodecsLoadInformationEventArgs>(codecs_LoadInformation); // Clean up image.Dispose(); codecs.Dispose(); } static class LEAD_VARS { public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images"; }
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(Stream inStreamCmp, Stream outStreamRaw, Stream outStreamBmp) { RasterCodecs codecs = new RasterCodecs(); // First, load a JPEG or CMP file RasterImage image = codecs.Load(inStreamCmp); // 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; codecs.Save(image, outStreamRaw, 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(outStreamRaw); // Save the image codecs.Save(image, outStreamBmp, RasterImageFormat.Bmp, image.BitsPerPixel); // Unsubscribe from the event codecs.LoadInformation -= new EventHandler<CodecsLoadInformationEventArgs>(codecs_LoadInformation); // Clean up image.Dispose(); }
Private Structure RawData Public Width As Integer ' Width of image Public Height As Integer ' Height of image Public BitsPerPixel As Integer ' Bits per pixel of image--if palettized, a gray palette is generated Public ViewPerspective As RasterViewPerspective ' View perspective of raw data (TopLeft, BottomLeft, etc) Public Order As RasterByteOrder ' Rgb or Bgr Public XResolution As Integer ' Horizontal resolution in DPI Public YResolution As Integer ' Vertical resolution in DPI Public Offset As Integer ' Offset into file where raw data begins Public Padding As Boolean ' true if each line of data is padded to four bytes Public ReverseBits As Boolean ' true if the bits of each byte are reversed End Structure Private myRawData As RawData Private Sub codecs_LoadInformation(ByVal sender As Object, ByVal e As CodecsLoadInformationEventArgs) ' 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 Then e.Pad4 = True End If e.Order = myRawData.Order If myRawData.ReverseBits Then e.LeastSignificantBitFirst = True End If e.ViewPerspective = myRawData.ViewPerspective ' If image is palettized create a grayscale palette 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(ByVal inStreamCmp As Stream, ByVal outStreamRaw As Stream, ByVal outStreamBmp As Stream) Dim codecs As RasterCodecs = New RasterCodecs() ' First, load a JPEG or CMP file Dim image As RasterImage = codecs.Load(inStreamCmp) ' 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 codecs.Save(image, outStreamRaw, 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 AddHandler codecs.LoadInformation, AddressOf codecs_LoadInformation ' Load the image image = codecs.Load(outStreamRaw) ' Save the image codecs.Save(image, outStreamBmp, RasterImageFormat.Bmp, image.BitsPerPixel) ' Unsubscribe from the event RemoveHandler codecs.LoadInformation, AddressOf codecs_LoadInformation ' Clean up image.Dispose() End Sub
Target Platforms: Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2