彩票走势图

支持调整SVG图像大小!Aspose.Imaging v19.11新功能示例演示!

翻译|使用教程|编辑:李显亮|2019-12-06 13:40:11.130|阅读 349 次

概述:在Aspose.Imaging for .NET v19.11中,支持调整SVG图像大小和监视文档转换进度的新功能。接下来我们用示例为大家演示调整SVG图像大小和监视文档转换进度的用法。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

Aspose.Imaging for .NET一种高级图像处理控件,允许开发人员创建,编辑,绘制或转换图像。图像导出和转换是API核心功能之一,它允许在不安装Photoshop应用程序或任何其他图像编辑器的情况下保存为AdobePhotoshop®本机格式。

Aspose.Imaging for .NET v19.11中,支持调整SVG图像大小和监视文档转换进度的新功能。接下来我们用示例为大家演示调整SVG图像大小和监视文档转换进度的用法。

>>欢迎下载Aspose.Imaging for .NET v19.11体验

*双旦狂欢,限时购买Aspose.Total,直接立减10000元,还有惊喜红包享不停!了解详情点击哦~~


调整SVG格式

SVG是可伸缩矢量图形文件格式,并利用基于XML的内容来描述图形。由于利用内容来描绘图形,因此可以将SVG文件格式缩放为各种大小,而不会影响质量。换句话说,SVG格式与分辨率无关。为此,Aspose中增加了一种新的方法调整大小。想象一个可以用来根据需要更改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);
}


// Example of use of operation progress event handler
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);
}



标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn


为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP