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