LEADTOOLS JPEG 2000 (Leadtools.Jpeg2000 assembly) Send comments on this topic. | Back to Introduction - All Topics | Help Version 17.0.3.29
ExtractFramesMemory(Stream,List<Int32>) Method
See Also 
Leadtools.Jpeg2000 Namespace > Jpeg2000Engine Class > ExtractFramesMemory Method : ExtractFramesMemory(Stream,List<Int32>) Method



stream
A System.IO.Stream containing the JPEG 2000 file data from which the frames are being extracted.
frames
Frame indices. A list of integers specifying the indices of the frames to be extracted from the input file. All indices should be 0-based.
stream
A System.IO.Stream containing the JPEG 2000 file data from which the frames are being extracted.
frames
Frame indices. A list of integers specifying the indices of the frames to be extracted from the input file. All indices should be 0-based.
Extracts specific frames from the input stream, and saves them to a new JPEG 2000 file in a byte array. This file contains only the extracted frame headers/codestreams (not any obtained through the decompressing/recompressing process) so it saves processor time and memory. This method is available in the Document/Medical Toolkits.

Syntax

Visual Basic (Declaration) 
Overloads Public Function ExtractFramesMemory( _
   ByVal stream As Stream, _
   ByVal frames As List(Of Integer) _
) As Byte()
Visual Basic (Usage)Copy Code
Dim instance As Jpeg2000Engine
Dim stream As Stream
Dim frames As List(Of Integer)
Dim value() As Byte
 
value = instance.ExtractFramesMemory(stream, frames)
C# 
public byte[] ExtractFramesMemory( 
   Stream stream,
   List<int> frames
)
C++/CLI 
public:
array<byte>^ ExtractFramesMemory( 
   Stream^ stream,
   List<int>^ frames
) 

Parameters

stream
A System.IO.Stream containing the JPEG 2000 file data from which the frames are being extracted.
frames
Frame indices. A list of integers specifying the indices of the frames to be extracted from the input file. All indices should be 0-based.

Return Value

A byte array that contains a JPEG 2000 file with extracted frames only.

Example

Visual BasicCopy Code
Private Function ExtractFramesMemoryStreamExample(ByVal frames As List(Of Integer)) As Byte()
      Dim fs As FileStream = File.OpenRead(Path.Combine(LEAD_VARS.ImagesDir, "image1.jpx"))

      Dim engine As New Jpeg2000Engine()
      Dim fileInfo As Jpeg2000FileInformation = engine.GetFileInformation(fs)

      For i As Integer = 0 To frames.Count - 1
         If (frames(i) >= fileInfo.Frame.GetLength(0)) Then
            Return Nothing
         End If
      Next i

      Dim buffer() As Byte = engine.ExtractFramesMemory(fs, frames)

      '  Clean up
      fs.Close()
      Return buffer
   End Function

Public NotInheritable Class LEAD_VARS
   Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images"
End Class
C#Copy Code
public byte[] ExtractFramesMemoryStreamExample(List<int> frames)
   {
      FileStream fs = File.OpenRead(Path.Combine(LEAD_VARS.ImagesDir, "image1.jpx"));

      Jpeg2000Engine engine = new Jpeg2000Engine();
      Jpeg2000FileInformation fileInfo = engine.GetFileInformation(fs);

      for (int i = 0; i < frames.Count; i++)
         if (frames[i] >= fileInfo.Frame.GetLength(0))
            return null;
      byte[] buffer = engine.ExtractFramesMemory(fs, frames);
      // Clean up
      fs.Close();
      return buffer;
   }

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

Remarks

. This method is very suitable for server applications where multiple clients request specific frames of a JPEG 2000 file. Instead of decompressing and then recompressing the frames this method copies only the needed frame data, saving the data to a new JPEG 2000 file.

Requirements

Target Platforms: Microsoft .NET Framework 2.0, Windows 2000, Windows XP, Windows Server 2003 family, Windows Server 2008 family, Windows Vista, Windows 7

See Also

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