Appends a single box to a JPEG 2000 data stream. This method is available in the Document/Medical Toolkits.
public void AppendBox(Stream stream,Jpeg2000SingleBox box)
stream
A System.IO.Stream containing the JPEG 2000 file data.
box
Jpeg2000SingleBox object containing the box data being appended.
According to the JPEG 2000 standard a ResolutionBox cannot be appended to a file. Set it using the SetBox method. Attempting to append a ResolutionBox will cause an invalid parameter exception to be thrown.
using Leadtools;using Leadtools.Codecs;using Leadtools.Jpeg2000;public void SaveStringExample(){RasterCodecs codecs = new RasterCodecs();codecs.ThrowExceptionsOnInvalidImages = true;// Load a JPEG 2000 imageJpeg2000Engine engine = new Jpeg2000Engine();RasterImage image = engine.Load(codecs, Path.Combine(LEAD_VARS.ImagesDir, "image1.jp2"), 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 boxengine.SetBoxes(Jpeg2000FileFormat.LeadJpx, xmlBoxes);engine.SetBox(Jpeg2000FileFormat.LeadJpx, resBox);//Save the image in JPX file formatengine.Save(codecs, Path.Combine(LEAD_VARS.ImagesDir, "Test.jpx"), image, Jpeg2000FileFormat.LeadJpx, 24, 5);//Append Intellectual Property Rights boxString copyRights = ("Copyright (c) 1991-2022 by LEAD Technologies, Inc. All Rights Reserved.");IprBox ipr = new IprBox();ipr.Data = Encoding.ASCII.GetBytes(copyRights);engine.AppendBox(Path.Combine(LEAD_VARS.ImagesDir, "Test.jpx"), ipr);// Clean upengine.Dispose();image.Dispose();codecs.Dispose();}static class LEAD_VARS{public const string ImagesDir = @"C:\LEADTOOLS23\Resources\Images";}