我有一個swf頁面,我想將其轉換爲png文件。 在我轉換文件之前,我想放大swf文件,以便我有更大的圖像。 我嘗試使用swftools進行轉換,但是png圖像質量不夠好:放大的png圖像看起來太模糊。如何保存swf文件的放大副本
你應該怎麼做才能捕捉/使用swf文件的放大版本。 一個Linux兼容的命令行工具將是偉大的,因爲我正在考慮轉換數百個圖像。
非常感謝
我有一個swf頁面,我想將其轉換爲png文件。 在我轉換文件之前,我想放大swf文件,以便我有更大的圖像。 我嘗試使用swftools進行轉換,但是png圖像質量不夠好:放大的png圖像看起來太模糊。如何保存swf文件的放大副本
你應該怎麼做才能捕捉/使用swf文件的放大版本。 一個Linux兼容的命令行工具將是偉大的,因爲我正在考慮轉換數百個圖像。
非常感謝
這不是一個Linux的方式,但我無法想象還有什麼。
我的解決方案是編寫AIR應用程序,該應用程序加載swf文件,將其添加到其屏幕,製作「prinscreen」並將打印屏幕保存到png。
1)每個顯示對象可以BitmapData
用另外的變換控制(需要縮放)可以得出,例如:
var btn:Button = new Button;
var bitmap:BitmapData = new BitmapData(width, height);
var m:Matrix = new Matrix;
m.scale(2, 2);
bitmap.draw(btn, m);
2)BitmapData
可以轉換爲PNG並保存。要轉換你可以使用內置的PNGEncoder
。輸出BiteArray
可以保存到指定的文件:
var bitmap:BitmapData = makeScreenShot();
var encoder:PNGEncoder = new PNGEncoder();
var bytes:ByteArray = encoder.encode(bitmap);
var imgStream:FileStream = new FileStream();
var img:File = new File(path);
imgStream.open(img, FileMode.WRITE);
imgStream.writeBytes(bytes);
imgStream.close();
http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/filesystem/FileStream.html
Additionaly,因爲包括PNGEncoder很慢,你可以自己使用Alchemy寫,因爲PNGLIB被移植(它是在SDK中的例子)。
3)你可以通過在命令行參數pathes主權財富基金到AIR應用程序:
<mx:WindowedApplication
xmlns:mx="http://www.adobe.com/2006/mxml"
invoke="onInvoke(event)">
...
private function onInvoke(event:InvokeEvent):void
{
for each (str:String in event.arguments)
//do something
}
http://cookbooks.adobe.com/post_How_do_I_use_command_line_arguments_with_my_AIR_ap-8003.html
似乎我將無法將文件轉換批量呢?那是對的嗎?你認爲這值得嘗試(安裝,學習語法等)。 – artsince
您將可以批量轉換文件。正如我所提到的,AIR應用程序支持參數,因此您可以將swf列表傳遞給它並轉換consecutevly。至於我,這是值得嘗試的,但我不需要學習^^。另一個原因 - 看起來,這是最簡單的解決方案(如果不是唯一的話)。 – moropus