CodecsJpeg2000PrecinctSize Enumeration (original) (raw)

Summary

Values to specify the size of JPEG 2000 compressed packets, provides a mean of random access into a JPEG 2000 compressed stream.

Syntax

C#

Objective-C

C++/CLI

Java

Python

public enum CodecsJpeg2000PrecinctSize   

typedef NS_ENUM(NSInteger, LTCodecsJpeg2000PrecinctSize) { LTCodecsJpeg2000PrecinctSizeFull = 0, LTCodecsJpeg2000PrecinctSizeUniform64 = 1, LTCodecsJpeg2000PrecinctSizeUniform128 = 2, LTCodecsJpeg2000PrecinctSizeUniform256 = 3, LTCodecsJpeg2000PrecinctSizeUniform512 = 4, LTCodecsJpeg2000PrecinctSizeUniform1024 = 5, LTCodecsJpeg2000PrecinctSizeUniform2048 = 6, LTCodecsJpeg2000PrecinctSizeHierarchicalOne64 = 7, LTCodecsJpeg2000PrecinctSizeHierarchicalOne128 = 8, LTCodecsJpeg2000PrecinctSizeHierarchicalOne256 = 9, LTCodecsJpeg2000PrecinctSizeHierarchicalOne512 = 10, LTCodecsJpeg2000PrecinctSizeHierarchicalTwo64 = 11, LTCodecsJpeg2000PrecinctSizeHierarchicalTwo128 = 12, LTCodecsJpeg2000PrecinctSizeHierarchicalTwo256 = 13, LTCodecsJpeg2000PrecinctSizeHierarchicalTwo512 = 14 };

public enum CodecsJpeg2000PrecinctSize 
public enum class CodecsJpeg2000PrecinctSize   

class CodecsJpeg2000PrecinctSize(Enum): Full = 0 Uniform64 = 1 Uniform128 = 2 Uniform256 = 3 Uniform512 = 4 Uniform1024 = 5 Uniform2048 = 6 HierarchicalOne64 = 7 HierarchicalOne128 = 8 HierarchicalOne256 = 9 HierarchicalOne512 = 10 HierarchicalTwo64 = 11 HierarchicalTwo128 = 12 HierarchicalTwo256 = 13 HierarchicalTwo512 = 14

Members

Value Member Description
0 Full No precinct is used, size is infinite.
1 Uniform64 For all resolution levels, a precinct dimension of [64x64] will be applied.
2 Uniform128 For all resolution levels, a precinct dimension of [128x128] will be applied.
3 Uniform256 For all resolution levels, a precinct dimension of [256x256] will be applied.
4 Uniform512 For all resolution levels, a precinct dimension of [512x512] will be applied.
5 Uniform1024 For all resolution levels, a precinct dimension of [1024x1024] will be applied.
6 Uniform2048 For all resolution levels, a precinct dimension of [2048x2048] will be applied.
7 HierarchicalOne64 A precinct size of [X by X] will be applied to the first(smallest) resolution of the image. The second resolution precinct dimension would be [2X by 2X]. The third resolution precinct dimension would be [4X by 4X] and so on. If the JPEG 2000 file has five levels and HierarchicalOne64 is used, the precinct dimensions will be as follows: [64x64] level 1 [128x128] level 2 [256x256] level 3 [512x512] level 4 [1024x1024] level 5
8 HierarchicalOne128 A precinct size of [X by X] will be applied to the first(smallest) resolution of the image. The second resolution precinct dimension would be [2X by 2X]. The third resolution precinct dimension would be [4X by 4X] and so on. If the JPEG 2000 file has five levels and HierarchicalOne128 is used, the precinct dimensions will be as follows: [128x128] level 1 [256x256] level 2 [512x512] level 3 [1024x1024] level 4 [2048x2048] level 5
9 HierarchicalOne256 A precinct size of [X by X] will be applied to the first(smallest) resolution of the image. The second resolution precinct dimension would be [2X by 2X]. The third resolution precinct dimension would be [4X by 4X] and so on. If the JPEG 2000 file has five levels and HierarchicalOne256 is used, the precinct dimensions will be as follows: [256x256] level 1 [512x512] level 2 [1024x1024] level 3 [2048x2048] level 4 [4096x4096] level 5
10 HierarchicalOne512 A precinct size of [X by X] will be applied to the first(smallest) resolution of the image. The second resolution precinct dimension would be [2X by 2X]. The third resolution precinct dimension would be [4X by 4X] and so on. If the JPEG 2000 file has five levels and HierarchicalOne512 is used, the precinct dimensions will be as follows: [512x512] level 1 [1024x1024 level 2 [2048x2048] level 3 [4096x4096] level 4 [8192x8192] level 5
11 HierarchicalTwo64 A precinct size of [X by X] will be applied to the first and second (smallest) resolutions of the image. The third and fourth resolution precinct dimensions would be [2X by 2X] and so on. So if the JPEG 2000 file has five levels and HierarchicalTwo64 is used, the precinct dimensions will be as follows: [64x64] level 1 [64x64] level 2 [128x128] level 3 [128x128] level 4 [256x256] level 5
12 HierarchicalTwo128 A precinct size of [X by X] will be applied to the first and second (smallest) resolutions of the image. The third and fourth resolution precinct dimensions would be [2X by 2X] and so on. So if the JPEG 2000 file has five levels and HierarchicalTwo128 is used, the precinct dimensions will be as follows: [128x128] level 1 [128x128] level 2 [256x256] level 3 [256x256] level 4 [512x512] level 5
13 HierarchicalTwo256 A precinct size of [X by X] will be applied to the first and second (smallest) resolutions of the image. The third and fourth resolution precinct dimensions would be [2X by 2X] and so on. So if the JPEG 2000 file has five levels and HierarchicalTwo256 is used, the precinct dimensions will be as follows: [256x256] level 1 [256x256] level 2 [512x512] level 3 [512x512] level 4 [1024x1024] level 5
14 HierarchicalTwo512 A precinct size of [X by X] will be applied to the first and second (smallest) resolutions of the image. The third and fourth resolution precinct dimensions would be [2X by 2X] and so on. So if the JPEG 2000 file has five levels and HierarchicalTwo512 is used, the precinct dimensions will be as follows: [512x512] level 1 [512x512] level 2 [1024x1024] level 3 [1024x1024] level 4 [2048x2048] level 5

Example

using Leadtools; using Leadtools.Codecs; using Leadtools.ImageProcessing.Core; public void CodecsJpeg2000OptionsExample() { RasterCodecs codecs = new RasterCodecs(); string srcFileName = Path.Combine(LEAD_VARS.ImagesDir, "Image1.j2k"); CodecsJpeg2000PrecinctSize[] precintSizes = (CodecsJpeg2000PrecinctSize[])Enum.GetValues(typeof(CodecsJpeg2000PrecinctSize)); foreach (var precinctSize in precintSizes) { Console.WriteLine($"PrecinctSize types: {precinctSize}"); } //Setting the Jpeg2000 load options. CodecsJpeg2000Options & CodecsJpeg2000LoadOptions reference codecs.Options.Jpeg2000.Load.J2kResolution = new LeadSize(800, 800); codecs.Options.Jpeg2000.Load.Jp2Resolution = new LeadSize(800, 800); codecs.Options.Jpeg2000.Load.CmwResolution = new LeadSize(0, 0); //loading a Jpeg2000 image. RasterImage srcImage = codecs.Load(srcFileName); //Setting the Jpeg2000 save options. CodecsJpeg2000SaveOptions reference codecs.Options.Jpeg2000.Save.AlphaChannelActiveBits = 16; codecs.Options.Jpeg2000.Save.AlphaChannelLossless = false; codecs.Options.Jpeg2000.Save.CompressionControl = CodecsJpeg2000CompressionControl.Ratio; codecs.Options.Jpeg2000.Save.CompressionRatio = 15.0f; codecs.Options.Jpeg2000.Save.DecompositionLevels = 5; codecs.Options.Jpeg2000.Save.DerivedQuantization = true; codecs.Options.Jpeg2000.Save.ImageAreaHorizontalOffset = 0; codecs.Options.Jpeg2000.Save.ImageAreaVerticalOffset = 0; codecs.Options.Jpeg2000.Save.ProgressingOrder = CodecsJpeg2000ProgressionsOrder.PositionComponentResolutionLayer; codecs.Options.Jpeg2000.Save.PrecinctSize = CodecsJpeg2000PrecinctSize.HierarchicalOne64; codecs.Options.Jpeg2000.Save.ReferenceTileHeight = 240; codecs.Options.Jpeg2000.Save.ReferenceTileWidth = 480; codecs.Options.Jpeg2000.Save.RegionOfInterest = CodecsJpeg2000RegionOfInterest.UseLeadRegion; codecs.Options.Jpeg2000.Save.RegionOfInterestRectangle = new LeadRect(0, 0, 0, 0); codecs.Options.Jpeg2000.Save.TargetFileSize = 10240; codecs.Options.Jpeg2000.Save.TileHorizontalOffset = 0; codecs.Options.Jpeg2000.Save.TileVerticalOffset = 0; codecs.Options.Jpeg2000.Save.UseColorTransform = true; codecs.Options.Jpeg2000.Save.UseEphMarker = false; codecs.Options.Jpeg2000.Save.UseRegionOfInterest = false; codecs.Options.Jpeg2000.Save.UseSopMarker = false; //Save the first sample. codecs.Save(srcImage, Path.Combine(LEAD_VARS.ImagesDir, "Image1_test.j2k"), RasterImageFormat.J2k, srcImage.BitsPerPixel); codecs.Options.Jpeg2000.Save.Reset(); //changing some of the Jpeg2000 save options codecs.Options.Jpeg2000.Save.CompressionRatio = 23.0f; codecs.Options.Jpeg2000.Save.DecompositionLevels = 6; codecs.Options.Jpeg2000.Save.ReferenceTileHeight = 320; codecs.Options.Jpeg2000.Save.ReferenceTileWidth = 320; codecs.Options.Jpeg2000.Save.UseEphMarker = true; codecs.Options.Jpeg2000.Save.ProgressingOrder = CodecsJpeg2000ProgressionsOrder.ResolutionPositionComponentLayer; codecs.Options.Jpeg2000.Save.UseSopMarker = true; codecs.Options.Jpeg2000.Save.TargetFileSize = 102400; var maximumComponentsNumber = CodecsJpeg2000SaveOptions.MaximumComponentsNumber; var maximumDecompressionLevels = CodecsJpeg2000SaveOptions.MaximumDecompressionLevels; Console.WriteLine("MaximumComponents: {0}, MaximumDecompressionLevels: {1}", maximumComponentsNumber, maximumDecompressionLevels); //Save the first sample. codecs.Save(srcImage, Path.Combine(LEAD_VARS.ImagesDir, "Image1_test.jp2"), RasterImageFormat.J2k, srcImage.BitsPerPixel); // Clean up srcImage.Dispose(); codecs.Dispose(); } static class LEAD_VARS { public const string ImagesDir = @"C:\LEADTOOLS22\Resources\Images"; }

Leadtools.Codecs Assembly

CompactFile(Stream,Stream,int,int,bool,int,int,bool,int,CodecsSavePageMode,bool,bool) Method

CompactFile(Stream,Stream,int,int,bool,long,int,bool,long,CodecsSavePageMode,bool,bool,bool) Method

CompactFile(string,string,int,int,bool,int,int,bool,int,CodecsSavePageMode,bool,bool) Method

CompactFile(string,string,int,int,bool,long,int,bool,long,CodecsSavePageMode,bool,bool,bool) Method

StartCompress(int,int,int,RasterByteOrder,RasterViewPerspective,int,byte[],int,int,CodecsCompression,CodecsCompressDataCallback) Method