public object StartDecompress(CodecsStartDecompressOptions options)
- (nullable NSObject *)startDecompress:(LTCodecsStartDecompressOptions *)decompressOptions error:(NSError **)error public Object startDecompress(CodecsStartDecompressOptions options) public:Object^ StartDecompress(CodecsStartDecompressOptions options)
def StartDecompress(self,options): 
options
Provides input parameters for the decompression process.
An object that identifies the decompression process. This same object must be passed to the Decompress and StopDecompress methods.
Initializes the buffered decompression engine. The decompression is then carried out using the Decompress method. It is ended by the StopDecompress method.
Currently, raw JPEG must contain all the Huffman tables encoded. That is, it must be a readable JPEG file.
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 methodvoid LoadRawPackbitsStrips(string packTifFile){RasterCodecs codecs = new RasterCodecs();string destFileName = Path.Combine(LEAD_VARS.ImagesDir, "Decompress.bmp");CodecsImageInfo imageInfo = codecs.GetInformation(packTifFile, false);// StartDecompressCodecsStartDecompressOptions 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);// Decompressconst 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 stripsconst int column = 0; // Column offset of tilefor (int index = 0; index < maxIndex; index++){// seek to the first stripfs.Seek(stripOffsets[index], SeekOrigin.Begin);byte[] buffer = new byte[stripSizes[index]];fs.Read(buffer, 0, buffer.Length);// Calculate the height of uncompressed strip/tileint height = rowsPerStrip;if (index == (maxIndex - 1)){// fewer rows per stripheight = imageInfo.Height - (maxIndex - 1) * rowsPerStrip;}codecs.Decompress(decompressObject,buffer,0,buffer.Length,imageInfo.Width,height,row,column,CodecsDecompressDataFlags.Complete);}fs.Close();// StopDecompressRasterImage image = codecs.StopDecompress(decompressObject);// 'image' contains the uncompressed imagecodecs.Save(image, destFileName, RasterImageFormat.Bmp, 24);image.Dispose();// Clean upcodecs.Dispose();}// Returns maximum indexint 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:\LEADTOOLS23\Resources\Images";}
import java.io.*;import java.net.*;import java.nio.file.Paths;import java.util.*;import java.time.Instant;import java.time.Duration;import org.junit.*;import org.junit.runner.JUnitCore;import org.junit.runner.Result;import org.junit.runner.notification.Failure;import static org.junit.Assert.*;import leadtools.*;import leadtools.codecs.*;import leadtools.codecs.RasterCodecs.FeedCallbackThunk;import leadtools.drawing.internal.*;import leadtools.imageprocessing.*;import leadtools.imageprocessing.color.ChangeIntensityCommand;import 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 methodpublic void loadRawPackbitsStripsExample() throws IOException {final String LEAD_VARS_IMAGES_DIR = "C:\\LEADTOOLS23\\Resources\\Images";String packTifFile = combine(LEAD_VARS_IMAGES_DIR, "packbits.tif");RasterCodecs codecs = new RasterCodecs();String destFileName = combine(LEAD_VARS_IMAGES_DIR, "Decompress.bmp");CodecsImageInfo imageInfo = codecs.getInformation(packTifFile, false);// StartDecompressCodecsStartDecompressOptions options = CodecsStartDecompressOptions.getEmpty();options.setDataType(CodecsStartDecompressDataType.STRIPS);options.setFormat(RasterImageFormat.RAW_PACKBITS);options.setWidth(imageInfo.getWidth());options.setHeight(imageInfo.getHeight());options.setBitsPerPixel(imageInfo.getBitsPerPixel());options.setLeastSignificantBitFirst(false);options.setPad4(false);options.setPlanarConfiguration(CodecsPlanarConfiguration.PLANAR_FORMAT);options.setViewPerspective(imageInfo.getViewPerspective());options.setRawOrder(imageInfo.getOrder());options.setLoadOrder(CodecsLoadByteOrder.BGR_OR_GRAY);options.setXResolution(imageInfo.getXResolution());options.setYResolution(imageInfo.getYResolution());options.setTiffPhotometricInterpretation(CodecsTiffPhotometricInterpretation.RGB);options.setColorMask(options.getColorMask());options.setPalette(options.getPalette());options.setUsePalette(false);Object decompressObject = codecs.startDecompress(options);// Decompressfinal int TAG_STRIPOFFSETS = 0x111;final int TAG_STRIPBYTECOUNTS = 0x117;final int TAG_ROWSPERSTRIP = 0x116;final 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];ILeadStream packTifStream = LeadStreamFactory.create(packTifFile);final int row = 0; // Note: this parameter is ignored for stripsfinal int column = 0; // Column offset of tilefor (int index = 0; index < maxIndex; index++) {// seek to the first strippackTifStream.seek(LeadSeekOrigin.BEGIN, stripOffsets[index]);byte[] buffer = new byte[stripSizes[index]];packTifStream.read(buffer, buffer.length);// Calculate the height of uncompressed strip/tileint height = rowsPerStrip;if (index == (maxIndex - 1)) {// fewer rows per stripheight = imageInfo.getHeight() - (maxIndex - 1) * rowsPerStrip;}codecs.decompress(decompressObject,buffer,0,buffer.length,imageInfo.getWidth(),height,row,column,CodecsDecompressDataFlags.COMPLETE);}packTifStream.close();// StopDecompressRasterImage image = codecs.stopDecompress(decompressObject);// 'image' contains the uncompressed imagecodecs.save(image, destFileName, RasterImageFormat.BMP, 24);image.dispose();// Clean upcodecs.dispose();}// Returns maximum indexint readTag(RasterCodecs codecs, String fileName, int tagId, int[] stripArray) throws IOException {ILeadStream fileStream = LeadStreamFactory.create(fileName);RasterTagMetadata tag = codecs.readTag(fileStream, 1, tagId);int[] data = tag.toInt32();for (int i = 0; i < data.length; i++) {stripArray[i] = data[i];}fileStream.close();return tag.getCount();}
Help Collections
Raster .NET | C API | C++ Class Library | HTML5 JavaScript
Document .NET | C API | C++ Class Library | HTML5 JavaScript
Medical .NET | C API | C++ Class Library | HTML5 JavaScript
Medical Web Viewer .NET
Multimedia
Direct Show .NET | C API | Filters
Media Foundation .NET | C API | Transforms
Supported Platforms
.NET, Java, Android, and iOS/macOS Assemblies
Imaging, Medical, and Document
C API/C++ Class Libraries
Imaging, Medical, and Document
HTML5 JavaScript Libraries
Imaging, Medical, and Document
