嗨,大家好!我很高兴分享 Aspose.Imaging 19.11 的发布公告,该公告已通过新功能得到增强,包括支持 调整 SVG 图像大小 和监控文档转换进度。 Aspose 团队最好的事情之一是它每月同时发布 .NET 和 Java API。这样,两个 API 的用户可以同时使用新添加的功能。
在以下部分中,我将向您介绍 API 中的新功能和增强功能。
使用 C# 和 Java 调整 SVG 大小
SVG 是一种可缩放矢量图形文件格式,并利用基于 XML 的内容来描绘图形。 SVG 文件格式可以缩放到各种大小而不会影响质量,因为内容用于渲染图像中的图形。换句话说,SVG 格式与分辨率无关。为此,在 Aspose.Imaging 中添加了一种新方法 resize,可用于获取 SVG 文件所需的尺寸大小。
以下示例演示了此功能的使用:
void ResizeSvg()
{
string inputFileName = "Logotype.svg";
using (Image image = Image.Load(inputFileName))
{
image.Resize(image.Width * 10,image.Height * 15);
image.Save("Logotype_10_15.png", new PngOptions()
{
VectorRasterizationOptions = new SvgRasterizationOptions()
});
}
}
类似的基于 Java 的实现如下:
String inputFileName = "Logotype.svg";
try (Image image = Image.load(inputFileName))
{
image.resize(image.getWidth() * 10,image.getHeight() * 15);
image.save("Logotype_10_15.png", new PngOptions()
{{
setVectorRasterizationOptions(new SvgRasterizationOptions());
}});
}
支持文档转换进度
有时,您使用大型图像文件,并且在将此类文件渲染为其他格式时,根据文件大小需要等待很长时间才能完成渲染过程。在这种情况下,确定转换进度非常方便,因为如果您打算向最终用户显示有关转换过程的某些状态,它会很有用。为此,在 Aspose.Imaging 中添加了一个新属性 ProgressCallback。
以下示例演示了此功能的使用:
// 使用单独的操作进度事件处理程序进行加载/导出操作的示例
using (var image = Image.Load(fileName, new LoadOptions { ProgressEventHandler = ProgressCallback }))
{
image.Save(fileName+".psd",
new PsdOptions() { ProgressEventHandler = ExportProgressCallback });
}
internal void ProgressCallback(ProgressEventHandlerInfo info)
{
Console.WriteLine("{0} : {1}/{2}", info.EventType, info.Value, info.MaxValue);
}
internal void ExportProgressCallback(ProgressEventHandlerInfo info)
{
Console.WriteLine("Export event {0} : {1}/{2}", info.EventType, info.Value, info.MaxValue);
}
// 操作进度事件处理程序的使用示例
using (var image = Image.Load(fileName, new LoadOptions { ProgressEventHandler = ProgressCallback }))
{
image.Save();
}
internal void ProgressCallback(ProgressEventHandlerInfo info)
{
Console.WriteLine("{0} : {1}/{2}", info.EventType, info.Value, info.MaxValue);
}
类似的基于 Java 的实现如下:
// 使用单独的操作进度事件处理程序进行加载/导出操作的示例
String fileName = "some file to load";
LoadOptions loadOptions = new LoadOptions();
loadOptions.setProgressEventHandler(new ProgressEventHandler()
{
@Override
public void invoke(ProgressEventHandlerInfo info)
{
System.out.format("Load event %s : %d/%d\n", EventType.toString(EventType.class, info.getEventType())
, info.getValue(), info.getMaxValue());
}
});
try (Image image = Image.load(fileName, loadOptions))
{
PsdOptions psdOptions = new PsdOptions();
psdOptions.setProgressEventHandler(new ProgressEventHandler()
{
@Override
public void invoke(ProgressEventHandlerInfo info)
{
System.out.format("Export event %s : %d/%d\n", EventType.toString(EventType.class, info.getEventType())
, info.getValue(), info.getMaxValue());
}
});
image.save(fileName + ".psd", psdOptions);
}
等等,此版本中包含许多其他功能、增强功能和错误修复。您可以参考我们的 Release Notes 部分 以获取更多详细信息。
如果时间允许,您还可以查看现成的 Github 上的示例。您还可以在我们的 产品支持论坛 中讨论此版本和其他 API 相关问题。