LEADTOOLS JPEG 2000 (Leadtools.Jpeg2000 assembly)
LEAD Technologies, Inc

FragmentJpxFile Method

Example 





System.String containing the name of the JPX file from which frames are to be extracted.
System.String containing the name of the fragmented JPX file.
List of UuidUrl specifying the URLs where the fragments are contained.
List of Fragment specifying the following for each fragment:
Fragments the specified code streams within a JPEG 2000 part 2 (JPX) file. This method is available in the Document/Medical Toolkits.
Syntax
public void FragmentJpxFile( 
   string inputFileName,
   string outputFileName,
   List<UuidUrl> urls,
   List<Fragment> fragments
)
'Declaration
 
Public Sub FragmentJpxFile( _
   ByVal inputFileName As String, _
   ByVal outputFileName As String, _
   ByVal urls As List(Of UuidUrl), _
   ByVal fragments As List(Of Fragment) _
) 
'Usage
 
Dim instance As Jpeg2000Engine
Dim inputFileName As String
Dim outputFileName As String
Dim urls As List(Of UuidUrl)
Dim fragments As List(Of Fragment)
 
instance.FragmentJpxFile(inputFileName, outputFileName, urls, fragments)
public void FragmentJpxFile( 
   string inputFileName,
   string outputFileName,
   List<UuidUrl> urls,
   List<Fragment> fragments
)
 function Leadtools.Jpeg2000.Jpeg2000Engine.FragmentJpxFile( 
   inputFileName ,
   outputFileName ,
   urls ,
   fragments 
)
public:
void FragmentJpxFile( 
   String^ inputFileName,
   String^ outputFileName,
   List<UuidUrl>^ urls,
   List<Fragment>^ fragments
) 

Parameters

inputFileName
System.String containing the name of the JPX file from which frames are to be extracted.
outputFileName
System.String containing the name of the fragmented JPX file.
urls
List of UuidUrl specifying the URLs where the fragments are contained.
fragments
List of Fragment specifying the following for each fragment:
  • The code stream index to be fragmented
  • The index for the URL which contains the fragment
  • The offset of the first byte of the fragment within the specified URL
Remarks

It is up to the user to save the fragmented code streams in their URL locations.

Fragmentation in JPX works by specifying a table of pointers to the individual fragments. Each pointer specifies three things:

  1. The file which contains the fragment. Because multiple fragments across multiple code streams can be stored in the same file, the format encapsulates all filename/URL data into a table (the Data Reference box). Each fragment specification then references an entry in the data reference table.
  2. The offset of the first byte of the fragment within the specified file. This offset is with respect to the first byte of the file (byte 0) and points directly to the first byte of code stream data for the fragment-- it does NOT point to the start of the box containing that fragment.
  3. The length of the fragment, in bytes.

Fragmentation is an important feature of the JPX file format since it allows applications to implement such features as:

Example
 
Public Sub FragmentJpxFileExample()
      Dim engine As New Jpeg2000Engine()

      Dim fileInfo As Jpeg2000FileInformation = engine.GetFileInformation(Path.Combine(LEAD_VARS.ImagesDir, "image1.jpx"))

      If (1 > fileInfo.CodeStream.GetLength(0)) Then
         Return
      End If

      Dim frames As New List(Of Integer)
      frames.Add(0)
      Dim url As New UuidUrl()
      ReDim url.Flag(2)
      url.Flag(0) = 0
      url.Flag(1) = 0
      url.Flag(2) = 0
      url.Version = 0
      Dim loaction As String = Path.Combine(LEAD_VARS.ImagesDir, "codestream.bin")
      Dim data() As Byte = Encoding.ASCII.GetBytes(loaction)
      ReDim url.Location(data.GetLength(0))
      data.CopyTo(url.Location, 0)

      Dim urls As New List(Of UuidUrl)
      urls.Add(url)
      Dim _fragment As New Fragment()
      _fragment.CodeStreamIndex = 0
      _fragment.Offset = 0
      _fragment.UrlIndex = 0
      Dim fragments As New List(Of Fragment)
      fragments.Add(_fragment)
      engine.FragmentJpxFile(Path.Combine(LEAD_VARS.ImagesDir, "image1.jpx"), Path.Combine(LEAD_VARS.ImagesDir, "Test.jpx"), urls, fragments)
   End Sub

Public NotInheritable Class LEAD_VARS
   Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images"
End Class
public void FragmentJpxFileExample()
   {
      Jpeg2000Engine engine = new Jpeg2000Engine();

      Jpeg2000FileInformation fileInfo = engine.GetFileInformation(Path.Combine(LEAD_VARS.ImagesDir, "image1.jpx"));

      if (1 > fileInfo.CodeStream.GetLength(0))
         return;

      List<int> frames = new List<int>();
      frames.Add(0);
      UuidUrl url = new UuidUrl();
      url.Flag = new byte[3];
      url.Flag[0] = 0;
      url.Flag[1] = 0;
      url.Flag[2] = 0;
      url.Version = 0;
      String loaction = Path.Combine(LEAD_VARS.ImagesDir, "codestream.bin");
      byte[] data = Encoding.ASCII.GetBytes(loaction);
      url.Location = new byte[data.GetLength(0)];
      data.CopyTo(url.Location, 0);

      List<UuidUrl> urls = new List<UuidUrl>();
      urls.Add(url);
      Fragment fragment = new Fragment();
      fragment.CodeStreamIndex = 0;
      fragment.Offset = 0;
      fragment.UrlIndex = 0;
      List<Fragment> fragments = new List<Fragment>();
      fragments.Add(fragment);
      engine.FragmentJpxFile(Path.Combine(LEAD_VARS.ImagesDir, "image1.jpx"), Path.Combine(LEAD_VARS.ImagesDir, "Test.jpx"), urls, fragments);
   }

static class LEAD_VARS
{
   public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images";
}
Requirements

Target Platforms: Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

See Also

Reference

Jpeg2000Engine Class
Jpeg2000Engine Members
AppendFrames(RasterCodecs,String,List<CompositeJpxImages>,Int32,Int32) Method
AppendGmlData
ExtractFrames
ExtractFramesMemory
ExtractFramesNativeMemory
ReadBox
ReadFrames
ReadGmlData
Compression Using LEAD and JPEG Formats
File Formats - JPEG And LEAD Compressed
Bitmaps In Memory And In Files
JPEG2000 File Comments
JPEG And LEAD File Comments
Programming with JPEG 2000 Features
JPEG 2000 Boxes

 

 


Products | Support | Contact Us | Copyright Notices

© 2006-2012 All Rights Reserved. LEAD Technologies, Inc.

Leadtools.Jpeg2000 requires a Document or Medical toolkit license and unlock key. For more information, refer to: LEADTOOLS Toolkit Features