←Select platform

LeastSignificantBitFirst Property

Summary
Gets or sets a value specifying whether to save the image data with the least significant bit first or last.
Syntax
C#
Objective-C
C++/CLI
Java
Python
public bool LeastSignificantBitFirst { get; set; } 
@property (nonatomic, assign) BOOL leastSignificantBitFirst; 
public boolean getLeastSignificantBitFirst() 
public void setLeastSignificantBitFirst(boolean value) 
public: 
property bool LeastSignificantBitFirst { 
   bool get(); 
   void set (    bool ); 
} 
LeastSignificantBitFirst # get and set (CodecsStartDecompressOptions) 

Property Value

Value Description
true To save the image data with least significant bit first (LSB) or last (MSB).
false To not save the image data with least significant bit first (LSB) or last (MSB). The default value is false.
Example
C#
using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.ImageProcessing; 
using Leadtools.ImageProcessing.Color; 
using Leadtools.Svg; 
 
 
// This sample loads raw data from a PackBits TIF file 
// PackBits.tif is a 24-bit tif packbits compressed file 
// PackBits.tif has 46 strips of packbits data 
// The strip information is obtained by reading the TIF tags TAG_STRIPOFFSETS and TAG_STRIPBYTECOUNTS 
// The strips are directly read and fed to the Compress method 
void LoadRawPackbitsStrips(string packTifFile) 
{ 
   RasterCodecs codecs = new RasterCodecs(); 
 
   string destFileName = Path.Combine(LEAD_VARS.ImagesDir, "Decompress.bmp"); 
 
   CodecsImageInfo imageInfo = codecs.GetInformation(packTifFile, false); 
 
   // StartDecompress 
   CodecsStartDecompressOptions options = CodecsStartDecompressOptions.Empty; 
   options.DataType = CodecsStartDecompressDataType.Strips; 
   options.Format = RasterImageFormat.RawPackBits; 
   options.Width = imageInfo.Width; 
   options.Height = imageInfo.Height; 
   options.BitsPerPixel = imageInfo.BitsPerPixel; 
   options.LeastSignificantBitFirst = false; 
   options.Pad4 = false; 
   options.PlanarConfiguration = CodecsPlanarConfiguration.PlanarFormat; 
   options.ViewPerspective = imageInfo.ViewPerspective; 
   options.RawOrder = imageInfo.Order; 
   options.LoadOrder = CodecsLoadByteOrder.BgrOrGray; 
   options.XResolution = imageInfo.XResolution; 
   options.YResolution = imageInfo.YResolution; 
   options.TiffPhotometricInterpretation = CodecsTiffPhotometricInterpretation.Rgb; 
   options.SetColorMask(options.GetColorMask()); 
   options.SetPalette(options.GetPalette()); 
   options.UsePalette = false; 
 
   object decompressObject = codecs.StartDecompress(options); 
 
   // Decompress 
 
   const int TAG_STRIPOFFSETS = 0x111; 
   const int TAG_STRIPBYTECOUNTS = 0x117; 
   const int TAG_ROWSPERSTRIP = 0x116; 
   const int MAX_STRIPS = 1000; 
 
   int[] stripOffsets = new int[MAX_STRIPS]; 
   int[] stripSizes = new int[MAX_STRIPS]; 
   int[] rowsPerStripBuffer = new int[1]; 
 
   int maxIndex = ReadTag(codecs, packTifFile, TAG_STRIPOFFSETS, stripOffsets); 
   ReadTag(codecs, packTifFile, TAG_STRIPBYTECOUNTS, stripSizes); 
   ReadTag(codecs, packTifFile, TAG_ROWSPERSTRIP, rowsPerStripBuffer); 
   int rowsPerStrip = rowsPerStripBuffer[0]; 
 
   FileStream fs = File.OpenRead(packTifFile); 
 
   const int row = 0; // Note: this parameter is ignored for strips 
   const int column = 0; // Column offset of tile 
   for (int index = 0; index < maxIndex; index++) 
   { 
      // seek to the first strip 
      fs.Seek(stripOffsets[index], SeekOrigin.Begin); 
 
      byte[] buffer = new byte[stripSizes[index]]; 
      fs.Read(buffer, 0, buffer.Length); 
 
      // Calculate the height of uncompressed strip/tile 
      int height = rowsPerStrip; 
      if (index == (maxIndex - 1)) 
      { 
         // fewer rows per strip 
         height = imageInfo.Height - (maxIndex - 1) * rowsPerStrip; 
      } 
 
      codecs.Decompress( 
         decompressObject, 
         buffer, 
         0, 
         buffer.Length, 
         imageInfo.Width, 
         height, 
         row, 
         column, 
         CodecsDecompressDataFlags.Complete); 
   } 
 
   fs.Close(); 
 
   // StopDecompress 
   RasterImage image = codecs.StopDecompress(decompressObject); 
 
   // 'image' contains the uncompressed image 
   codecs.Save(image, destFileName, RasterImageFormat.Bmp, 24); 
   image.Dispose(); 
 
   // Clean up 
   codecs.Dispose(); 
} 
 
// Returns maximum index 
int ReadTag(RasterCodecs codecs, string fileName, int tagId, int[] stripArray) 
{ 
   RasterTagMetadata tag = codecs.ReadTag(fileName, 1, tagId); 
   int[] data = tag.ToInt32(); 
   data.CopyTo(stripArray, 0); 
   return tag.Count; 
} 
 
static class LEAD_VARS 
{ 
   public const string ImagesDir = @"C:\LEADTOOLS22\Resources\Images"; 
} 
Requirements

Target Platforms

Help Version 22.0.2023.5.5
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2023 LEAD Technologies, Inc. All Rights Reserved.

Leadtools.Codecs Assembly

Products | Support | Contact Us | Intellectual Property Notices
© 1991-2023 LEAD Technologies, Inc. All Rights Reserved.