Browse our Products
Aspose.Imaging for .NET 25.2 - Release notes
Competitive features:
| Key | Summary | Category |
|---|---|---|
| IMAGINGNET-7477 | Blank output image on converting TIFF | Enhancement |
| IMAGINGNET-7442 | Regression: EMF to PDF: Blank output file | Enhancement |
| IMAGINGNET-7309 | Creating a PNG with BitDepth=16 throws an exception in evaluation mode | Enhancement |
| IMAGINGNET-7308 | Conversion of PNG file from 8 bit per channel to 16 fails without a license | Enhancement |
| IMAGINGNET-7281 | Some EXIF metadata props are missing after JPEG to TIFF | Enhancement |
| IMAGINGNET-7174 | Reduce memory usage during AVIF image loading. | Enhancement |
| IMAGINGNET-6800 | Add XmpData support in the SVG format | Enhancement |
| IMAGINGNET-6439 | Fix bugs with rendering some characters in CDR format | Enhancement |
Public API changes:
Added APIs:
Method Aspose.Imaging.FileFormats.Dicom.DicomImageInfo.AddTag(System.String,System.Object)
Method Aspose.Imaging.FileFormats.Dicom.DicomImageInfo.RemoveTagAt(System.Int32)
Method Aspose.Imaging.FileFormats.Dicom.DicomImageInfo.TryAddTag(System.String,System.Object)
Method Aspose.Imaging.FileFormats.Dicom.DicomImageInfo.TryRemoveTagAt(System.Int32)
Method Aspose.Imaging.FileFormats.Dicom.DicomImageInfo.TryUpdateTagAt(System.Int32,System.Object)
Method Aspose.Imaging.FileFormats.Dicom.DicomImageInfo.UpdateTagAt(System.Int32,System.Object)
Method Aspose.Imaging.Image.GetSerializedStream (Aspose.Imaging.ImageOptionsBase,Aspose.Imaging.Rectangle,System.Int32@)
Method Aspose.Imaging.Image.UpdateContainer(Aspose.Imaging.Image)
Method Aspose.Imaging.RasterCachedMultipageImage.GetSerializedStream (Aspose.Imaging.ImageOptionsBase,Aspose.Imaging.Rectangle,System.Int32@)
Method Aspose.Imaging.VectorMultipageImage.GetSerializedStream (Aspose.Imaging.ImageOptionsBase,Aspose.Imaging.Rectangle,System.Int32@)
Property Aspose.Imaging.FileFormats.Dicom.DicomImageInfo.ReadonlyTagsList
Removed APIs:
Usage Examples:
IMAGINGNET-7477 Blank output image on converting TIFF
var inputPath = @"input.tiff"; using (var image = Image.Load(inputPath)) { image.Save(inputPath + ".pdf"); }IMAGINGNET-7442 Regression: EMF to PDF: Blank output file
using (var image = Image.Load("example.emf")) { var rasterOpts = new EmfRasterizationOptions(); rasterOpts.PageWidth = image.Width; rasterOpts.PageHeight = image.Height; rasterOpts.BackgroundColor = Color.WhiteSmoke; PdfOptions pdfOptions = new PdfOptions(); pdfOptions.VectorRasterizationOptions = rasterOpts; image.Save("emf_out.pdf", pdfOptions); }IMAGINGNET-7309 Creating a PNG with BitDepth=16 throws an exception in evaluation mode
var outputPath = "output64Bit.png"; var createOptions = new PngOptions { BitDepth = 16, ColorType = PngColorType.TruecolorWithAlpha, CompressionLevel = 9, FilterType = PngFilterType.Sub, Progressive = true }; License lic = new License(); lic.SetLicense(""); // no license using (var pngImage = new PngImage(createOptions, 100, 100)) { var graphics = new Graphics(pngImage); var gradientBrush = new LinearGradientBrush( new Point(0, 0), new Point(pngImage.Width, pngImage.Height), Color.Blue, Color.Transparent); graphics.FillRectangle(gradientBrush, pngImage.Bounds); pngImage.Save(outputPath); }IMAGINGNET-7308 Conversion of PNG file from 8 bit per channel to 16 fails without a license
cpp License lic = new License(); lic.SetLicense(""); // no license using (var image = Image.Load("OutputAllTypes2.png")) { var options = new PngOptions() { BitDepth = 16, ColorType = PngColorType.TruecolorWithAlpha, }; image.Save("OutputAllTypes2-64Bit.png", options); }IMAGINGNET-7281 Some EXIF metadata props are missing after JPEG to TIFF
var inputPath = @"C:\Users\Denis\Downloads\input.JPG"; var outputPath = inputPath + ".tiff"; int imageOrientation = 0; using (var image = Image.Load(inputPath)) { if (image is IHasExifData hasExif) { imageOrientation = (int)(hasExif.ExifData?.Orientation ?? 0); } image.Save(outputPath, new TiffOptions(TiffExpectedFormat.TiffJpegRgb) { KeepMetadata = true, }); } int outputOrientation = 0; using (var image = Image.Load(outputPath) as TiffImage) { outputOrientation = (int)image.ActiveFrame.FrameOptions.Orientation; } Debug.Assert(imageOrientation == outputOrientation);IMAGINGNET-7174 Reduce memory usage during AVIF image loading.
### Example The sample AVIF image is exported into a PNG image format. Compared to the previous version, processing speed has increased approximately 12 times, while memory usage has been reduced by about 20 times. cpp var inputPath = "input.avif"; var outputPath = "output.png"; using (var image = (AvifImage)Image.Load(inputPath)) { image.Save(outputPath); }IMAGINGNET-6800 Add XmpData support in the SVG format
var inputPath = @"input.svg"; var saveSvgWithMetadataOptions = new KeyValuePair<string, ImageOptionsBase>[] { new KeyValuePair<string, ImageOptionsBase>(".svg", null), new KeyValuePair<string, ImageOptionsBase>(".svg", new SvgOptions { KeepMetadata = true, }), }; var inputHasXmp = false; using (var image = Image.Load(inputPath)) { inputHasXmp = (image as IHasXmpData)?.XmpData != null; foreach (var kv in saveSvgWithMetadataOptions) { var outputPath = inputPath + kv.Key; if (kv.Value == null) { image.Save(outputPath); } else { image.Save(outputPath, kv.Value); } using (var outputImage = Image.Load(outputPath)) { var outputHasXmp = (outputImage as IHasXmpData)?.XmpData != null; Debug.Assert(inputHasXmp == outputHasXmp, "XmpData is missing."); } } }IMAGINGNET-6439 Fix bugs with rendering some characters in CDR format
cpp using (var image = Image.Load("Test corel.cdr")) { image.Save("result.png", new PngOptions() { VectorRasterizationOptions = new CdrRasterizationOptions() { Positioning = PositioningTypes.DefinedByDocument } }); }