翻譯|使用教程|編輯:李顯亮|2019-12-06 13:40:11.130|閱讀 379 次
概述:在Aspose.Imaging for .NET v19.11中,支持調(diào)整SVG圖像大小和監(jiān)視文檔轉(zhuǎn)換進度的新功能。接下來我們用示例為大家演示調(diào)整SVG圖像大小和監(jiān)視文檔轉(zhuǎn)換進度的用法。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
Aspose.Imaging for .NET一種高級圖像處理控件,允許開發(fā)人員創(chuàng)建,編輯,繪制或轉(zhuǎn)換圖像。圖像導出和轉(zhuǎn)換是API核心功能之一,它允許在不安裝Photoshop應用程序或任何其他圖像編輯器的情況下保存為AdobePhotoshop?本機格式。
在Aspose.Imaging for .NET v19.11中,支持調(diào)整SVG圖像大小和監(jiān)視文檔轉(zhuǎn)換進度的新功能。接下來我們用示例為大家演示調(diào)整SVG圖像大小和監(jiān)視文檔轉(zhuǎn)換進度的用法。
>>歡迎下載Aspose.Imaging for .NET v19.11體驗
*雙旦狂歡,限時購買Aspose.Total,直接立減10000元,還有驚喜紅包享不停!了解詳情點擊哦~~
SVG是可伸縮矢量圖形文件格式,并利用基于XML的內(nèi)容來描述圖形。由于利用內(nèi)容來描繪圖形,因此可以將SVG文件格式縮放為各種大小,而不會影響質(zhì)量。換句話說,SVG格式與分辨率無關(guān)。為此,Aspose中增加了一種新的方法調(diào)整大小。想象一個可以用來根據(jù)需要更改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的實現(xiàn)如下:
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()); }}); }
有時,使用大型圖像文件,并且在將此類文件渲染為其他格式時,根據(jù)文件大小需要很長時間才能完成渲染過程。在這種情況下,確定轉(zhuǎn)換進度非常方便,因為如果打算向最終用戶顯示有關(guān)轉(zhuǎn)換過程的某些狀態(tài),則很有用。為此,已在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的實現(xiàn)如下:
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); }
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn