public Jpeg2000Box ReadBox(
Stream stream,
Jpeg2000BoxType boxType,
int boxIndex
)
stream
A System.IO.Stream containing the JPEG 2000 file data.
boxType
Box type to be read.
boxIndex
0-based box index specifying the box to be read.
Jpeg2000Box object containing the box data.
All of the engine boxes will be reset (both those that have been loaded and any that have not been loaded). Only those boxes that have been found in the file during loading are updated.
using Leadtools;
using Leadtools.Codecs;
using Leadtools.Jpeg2000;
public void SaveCompositeStringExample(byte[] xmlData)
{
RasterCodecs codecs = new RasterCodecs();
codecs.ThrowExceptionsOnInvalidImages = true;
// Load a JPEG 2000 image
Jpeg2000Engine engine = new Jpeg2000Engine();
List<CompositeJpxImages> images = engine.LoadComposite(codecs, Path.Combine(LEAD_VARS.ImagesDir, "image1.jpx"), 0, CodecsLoadByteOrder.BgrOrGray);
engine.ResetEngineBoxes();
GtsoBox gtsoBox = (GtsoBox)(engine.ReadBox(Path.Combine(LEAD_VARS.ImagesDir, "image1.jpx"), Jpeg2000BoxType.GtsoBox, 0));
engine.SetBox(Jpeg2000FileFormat.LeadJpx, gtsoBox);
//Save the image in JPX file format
engine.SaveComposite(codecs, Path.Combine(LEAD_VARS.ImagesDir, "Test.jpx"), images, Jpeg2000FileFormat.LeadJpx, 24, 5);
//Append an XML box
XmlBox xmlBox = new XmlBox();
xmlBox.Data = xmlData;
List<XmlBox> xmlBoxes = new List<XmlBox>();
xmlBoxes.Add(xmlBox);
engine.AppendBoxes(Path.Combine(LEAD_VARS.ImagesDir, "Test.jpx"), xmlBoxes);
// Clean up
foreach (CompositeJpxImages image in images)
{
image.ColorImage.Dispose();
image.OpacityImage.Dispose();
image.PreOpacityImage.Dispose();
}
codecs.Dispose();
}
static class LEAD_VARS
{
public const string ImagesDir = @"C:\LEADTOOLS23\Resources\Images";
}