Leadtools.Codecs Send comments on this topic. | Back to Introduction - All Topics | Help Version 15.12.17
CodecsRawOptions Class
See Also  Members   Example 
Leadtools.Codecs Namespace : CodecsRawOptions Class




Provides extra options for loading and saving RAW Data images.

Object Model


Syntax

Visual Basic (Declaration) 
Public Class CodecsRawOptions 
Visual Basic (Usage)Copy Code
Dim instance As CodecsRawOptions
C# 
public class CodecsRawOptions 
Managed Extensions for C++ 
public __gc class CodecsRawOptions 
C++/CLI 
public ref class CodecsRawOptions 

Example

Visual BasicCopy Code
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()
         RasterCodecs.Startup()
         Dim codecs As RasterCodecs = New RasterCodecs()

         ' First, load a JPEG or CMP file
         Dim image As RasterImage = 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

         Dim rawFileName As String = "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
         AddHandler codecs.LoadInformation, AddressOf 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
         RemoveHandler codecs.LoadInformation, AddressOf codecs_LoadInformation

         ' Clean up
         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

System.Object
   Leadtools.Codecs.CodecsRawOptions

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