Save(RasterCodecs,Stream,RasterImage,Jpeg2000FileFormat,int,int) Method

Summary
Saves a Leadtools.RasterImage to a stream in any of the supported JPEG 2000 file formats. This method is available in the Document/Medical Toolkits.
Syntax
C#
VB
C++
  
Public Overloads Sub Save( _ 
   ByVal codecs As RasterCodecs, _ 
   ByVal stream As Stream, _ 
   ByVal image As RasterImage, _ 
   ByVal format As Jpeg2000FileFormat, _ 
   ByVal bitsPerPixel As Integer, _ 
   ByVal qualityFactor As Integer _ 
)  
public: 
void Save(  
   RasterCodecs^ codecs, 
   Stream^ stream, 
   RasterImage^ image, 
   Jpeg2000FileFormat format, 
   int bitsPerPixel, 
   int qualityFactor 
)  

Parameters

codecs
The Leadtools.Codecs.RasterCodecs object.

stream
A System.IO.Stream where the image data will be saved.

image
The Leadtools.RasterImage object that holds the image data.

format
Output JPEG 2000 file format. For valid values, refer to Jpeg2000FileFormat.

bitsPerPixel
Resulting file's pixel depth. Possible values are: 8, 12, 16, 24, 32, 48, 64, and 0. A value of zero [0] means that each image will be saved with its bits per pixel value, if that value is equal to one of the possible values (8, 12, 16, 24, 32, 48, or 64).

qualityFactor
Quality factor. This value determines the degree of loss in the compression process. Possible values are from 0 to 255. A value of zero (0) represents lossless compression. Values between 1 and 255 are interpreted as a compression ratio.

Remarks

All engine boxes that are currently set will also be saved in this file.

Example
C#
VB
using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.Jpeg2000; 
 
public void SaveStreamExample() 
{ 
   RasterCodecs codecs = new RasterCodecs(); 
   codecs.ThrowExceptionsOnInvalidImages = true; 
 
   FileStream fs = File.OpenRead(Path.Combine(LEAD_VARS.ImagesDir, "image1.jp2")); 
 
   // Load a JPEG 2000 image 
   Jpeg2000Engine engine = new Jpeg2000Engine(); 
   RasterImage image = engine.Load(codecs, fs, 0, CodecsLoadByteOrder.BgrOrGray); 
 
   List<XmlBox> xmlBoxes = engine.GetBoxes<XmlBox>(Jpeg2000FileFormat.LeadJp2); 
   ResolutionBox resBox = (ResolutionBox)engine.GetBox(Jpeg2000FileFormat.LeadJp2, Jpeg2000BoxType.ResolutionBox); 
 
   engine.ResetEngineBoxes(); 
   //Set the JPX engine's XML box 
   engine.SetBoxes(Jpeg2000FileFormat.LeadJpx, xmlBoxes); 
   engine.SetBox(Jpeg2000FileFormat.LeadJpx, resBox); 
   fs.Close(); 
   fs = File.Create(Path.Combine(LEAD_VARS.ImagesDir, "Test.jpx")); 
   //Save the image in JPX file format 
   engine.Save(codecs, fs, image, Jpeg2000FileFormat.LeadJpx, 24, 5); 
   //Append Intellectual Property Rights box 
   String copyRights = ("Copyright (c) 1991-2015 by LEAD Technologies, Inc. All Rights Reserved."); 
   IprBox ipr = new IprBox(); 
   ipr.Data = Encoding.ASCII.GetBytes(copyRights); 
   engine.AppendBox(fs, ipr); 
 
   // Clean up 
   fs.Close(); 
   image.Dispose(); 
   codecs.Dispose(); 
} 
 
static class LEAD_VARS 
{ 
   public const string ImagesDir = @"C:\LEADTOOLS21\Resources\Images"; 
} 
Imports Leadtools 
Imports Leadtools.Codecs 
Imports Leadtools.Jpeg2000 
 
Public Sub SaveStreamExample() 
   Dim codecs As New RasterCodecs() 
   codecs.ThrowExceptionsOnInvalidImages = True 
 
   Dim fs As FileStream = File.OpenRead(Path.Combine(LEAD_VARS.ImagesDir, "image1.jp2")) 
 
   ' Load a JPEG 2000 image 
   Dim engine As New Jpeg2000Engine() 
   Dim Image As RasterImage = engine.Load(codecs, fs, 0, CodecsLoadByteOrder.BgrOrGray) 
 
   Dim xmlBoxes As List(Of XmlBox) = engine.GetBoxes(Of XmlBox)(Jpeg2000FileFormat.LeadJp2) 
   Dim resBox As ResolutionBox = DirectCast(engine.GetBox(Jpeg2000FileFormat.LeadJp2, Jpeg2000BoxType.ResolutionBox), ResolutionBox) 
 
   engine.ResetEngineBoxes() 
   ' Set the JPX engine's XML box 
   engine.SetBoxes(Jpeg2000FileFormat.LeadJpx, xmlBoxes) 
   engine.SetBox(Jpeg2000FileFormat.LeadJpx, resBox) 
   fs.Close() 
   fs = File.Create(Path.Combine(LEAD_VARS.ImagesDir, "Test.jpx")) 
   ' Save the image in JPX file format 
   engine.Save(codecs, fs, Image, Jpeg2000FileFormat.LeadJpx, 24, 5) 
   ' Append Intellectual Property Rights box 
   Dim copyRights As String = ("Copyright (c) 1991-2008 by LEAD Technologies, Inc. All Rights Reserved.") 
   Dim ipr As New IprBox() 
   ipr.Data = Encoding.ASCII.GetBytes(copyRights) 
   engine.AppendBox(fs, ipr) 
 
   ' Clean up 
   fs.Close() 
   Image.Dispose() 
   codecs.Dispose() 
End Sub 
 
Public NotInheritable Class LEAD_VARS 
   Public Const ImagesDir As String = "C:\LEADTOOLS21\Resources\Images" 
End Class 
Requirements

Target Platforms

Help Version 21.0.2021.6.30
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2021 LEAD Technologies, Inc. All Rights Reserved.

Leadtools.Jpeg2000 Assembly
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2021 LEAD Technologies, Inc. All Rights Reserved.