LEADTOOLS Image File Support (Leadtools.Codecs assembly)

CodecsRawOptions Class

Show in webframe
Example 







Members 
Provides extra options for loading and saving RAW Data images.
Object Model
Syntax
public class CodecsRawOptions 
'Declaration
 
Public Class CodecsRawOptions 
'Usage
 
Dim instance As CodecsRawOptions
public sealed class CodecsRawOptions 
@interface LTCodecsRawOptions : NSObject

            
function Leadtools.Codecs.CodecsRawOptions()
public ref class CodecsRawOptions 
Example
Copy Code  
Imports Leadtools
Imports Leadtools.Codecs

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
using Leadtools;
using Leadtools.Codecs;

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";
}
using Leadtools;
using Leadtools.Codecs;
using Leadtools.Examples;
using Leadtools.ImageProcessing;

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();
}
Imports Leadtools
Imports Leadtools.Codecs
Imports Leadtools.ImageProcessing

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
Requirements

Target Platforms

See Also

Reference

CodecsRawOptions Members
Leadtools.Codecs Namespace

 

 


Products | Support | Contact Us | Copyright Notices
© 2006-2014 All Rights Reserved. LEAD Technologies, Inc.