Aspose.Imaging for .NET一种高级图像处理控件,允许开发人员创建,编辑,绘制或转换图像。图像导出和转换是API核心功能之一,它允许在不安装Photoshop应用程序或任何其他图像编辑器的情况下保存为AdobePhotoshop®本机格式。
近期发布了Aspose.Imaging for .NET v19.6,JPEG输出中不再保留IMAGINGNET-3351 DPI属性,下面我们一起来探索新版中的新增功能及其工作原理。>>欢迎下载Aspose.Imaging for .NET v19.6体验
▲JPEG输出中不保留IMAGINGNET-3351 DPI属性
string dir = "c:\\aspose.work\\IMAGINGNET\\3351\\";
using (Aspose.Imaging.FileFormats.Tiff.TiffImage tiffImage = (Aspose.Imaging.FileFormats.Tiff.TiffImage)Image.Load(dir + "source2.tif"))
{
int i = 0;
foreach (Aspose.Imaging.FileFormats.Tiff.TiffFrame tiffFrame in tiffImage.Frames)
{
Aspose.Imaging.ImageOptions.JpegOptions saveOptions = new Aspose.Imaging.ImageOptions.JpegOptions();
saveOptions.ResolutionSettings = new ResolutionSetting(tiffFrame.HorizontalResolution, tiffFrame.VerticalResolution);
if (tiffFrame.FrameOptions != null)
{
// Set the resolution unit explicitly.
switch (tiffFrame.FrameOptions.ResolutionUnit)
{
case Aspose.Imaging.FileFormats.Tiff.Enums.TiffResolutionUnits.None:
saveOptions.ResolutionUnit = ResolutionUnit.None;
break;
case Aspose.Imaging.FileFormats.Tiff.Enums.TiffResolutionUnits.Inch:
saveOptions.ResolutionUnit = ResolutionUnit.Inch;
break;
case Aspose.Imaging.FileFormats.Tiff.Enums.TiffResolutionUnits.Centimeter:
saveOptions.ResolutionUnit = ResolutionUnit.Cm;
break;
default:
throw new System.NotSupportedException();
}
}
string fileName = "source2.tif.frame." + (i++) + "." + saveOptions.ResolutionUnit + ".jpg";
tiffFrame.Save(dir + fileName, saveOptions);
}
}
▲IMAGINGNET-3321加载PNG图像时占用大量内存
using (Image image = Image.Load("halfGigImage.png")) {
// todo something
}
▲IMAGINGNET-3287将WMF转换为SVG时会添加边距
string dir = "c:\\aspose.work\\IMAGINGNET\\3287\\";
string fileName = dir + "image2.wmf";
// Save WMF to SVG
using (Aspose.Imaging.Image image = Aspose.Imaging.Image.Load(fileName))
{
// The customer uses EmfRasterizationOptions instead of WmfRasterizationOptions.
// EmfRasterizationOptions works correctly in .NET as well.
Aspose.Imaging.ImageOptions.WmfRasterizationOptions rasterizationOptions = new Aspose.Imaging.ImageOptions.WmfRasterizationOptions();
rasterizationOptions.PageSize = image.Size;
Aspose.Imaging.ImageOptions.SvgOptions saveOptions = new Aspose.Imaging.ImageOptions.SvgOptions();
saveOptions.VectorRasterizationOptions = rasterizationOptions;
image.Save(fileName + ".svg", saveOptions);
}
// Save WMF to PNG
using (Aspose.Imaging.Image image = Aspose.Imaging.Image.Load(fileName))
{
// The customer uses EmfRasterizationOptions instead of WmfRasterizationOptions.
// EmfRasterizationOptions works correctly in .NET as well.
Aspose.Imaging.ImageOptions.WmfRasterizationOptions rasterizationOptions = new Aspose.Imaging.ImageOptions.WmfRasterizationOptions();
rasterizationOptions.PageSize = image.Size;
Aspose.Imaging.ImageOptions.PngOptions saveOptions = new Aspose.Imaging.ImageOptions.PngOptions();
saveOptions.VectorRasterizationOptions = rasterizationOptions;
image.Save(fileName + ".png", saveOptions);
}
▲IMAGINGNET-3378在将WMF转换为PNG时裁剪图像宽度和高度
public void WmfToJpg()
{
using (Image image = Image.Load("portrt.wmf")) {
image.Save(
"portrt.jpg",
new JpegOptions()
{
VectorRasterizationOptions = new WmfRasterizationOptions
{
BackgroundColor = Color.WhiteSmoke,
PageWidth = image.Width,
PageHeight = image.Height,
}
});
}
}
public void WmfToPngWithBorders()
{
using (Image image = Image.Load("portrt.wmf")) {
image.Save(
"portrt.png",
new PngOptions()
{
VectorRasterizationOptions = new WmfRasterizationOptions
{
BackgroundColor = Color.WhiteSmoke,
PageWidth = image.Width,
PageHeight = image.Height,
BorderX = 50,
BorderY = 20
}
});
}
}
▲IMAGINGNET-3336使用ODG文件格式时,将在控制台中打印文本
string fileName = "example.odg";
using (OdgImage image = (OdgImage)Image.Load(fileName))
{
}
▲IMAGINGNET-3421 GIF文件未正确转换为PDF
public void TestExportGifToPdf()
{
string[] fileNames = new [] {
"czone.gif",
"DTRA_LogoType.gif",
"DTRA_Seal.gif",
"Equip1.gif",
"Equip2.gif",
"Equip3.gif"
};
foreach (string fileName in fileNames) {
using (Image image = Image.Load(fileName))
{
image.Save(fileName + ".pdf", new PdfOptions());
}
}
}
▲IMAGINGNET-3205 RotateFlip操作与PSD无法正常工作
// RotateFlip operation doesn't work as expected with PSD
string sourceFile = "1.psd";
string pngPath = "RotateFlipTest2617.png";
string psdPath = "RotateFlipTest2617.psd";
RotateFlipType flipType = RotateFlipType.Rotate270FlipXY;
using (var im = (PsdImage)(Image.Load(sourceFile)))
{
im.RotateFlip(flipType);
im.Save(pngPath, new PngOptions() { ColorType = PngColorType.TruecolorWithAlpha });
im.Save(psdPath);
}
▲IMAGINGNET-3374将DJVU格式转换为图像的问题
using (DjvuImage image = (DjvuImage)Imaging.Image.Load(@"input.djvu"))
{
PngOptions exportOptions = new PngOptions();
for (int i = 0; i < image.Pages.Length; i++)
{
DjvuPage page = image.Pages[i];
page.Save(@"page" + i + ".png", exportOptions);
}
}
▲IMAGINGNET-3339 SvgRasterizationOptions大小设置不起作用
using (Image image = Image.Load("test.svg"))
{
image.Save("test.svg_out.bmp",
new BmpOptions()
{
VectorRasterizationOptions = new SvgRasterizationOptions()
{
PageWidth = 100,
PageHeight = 200
}
});
}
-- 未完待续 --
Aspose.Imaging for .NET v19.6更新了JPEG输出、PNG内存占用、WMF到SVG转换等多个问题。此版本解决了包括DPI属性丢失、内存占用、图像转换错误等在内的一系列图像处理问题,提升了转换和导出的准确性。
624

被折叠的 条评论
为什么被折叠?



