2011-08-16 11 views
0

swfページをpngファイルに変換したいのですが。 ファイルを変換する前に、swfファイルを拡大して、大きな画像を表示したいと思います。 私はswftoolsを変換しようとしましたが、pngイメージの品質が十分ではありません。拡大されたpngイメージがあまりにもぼやけて見えます。swfファイルの拡大コピーを保存する方法

拡大表示されたswfファイルをキャプチャして使用することをお勧めします。 私は何百もの画像を変換することを考えているので、linux互換のコマンドラインツールは素晴らしいだろう。

どうもありがとう

答えて

2

これは、Linuxの方法ではないのですが、私は何も想像することはできません。

私の解決方法は、swfファイルを読み込んで画面に追加し、「プリスクリーン」を作成してプリントスクリーンをpngに保存するAIRアプリケーションを作成することです。この上

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); 

より:http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/BitmapData.html#draw%28%29

2)BitmapData PNGに変換することができます例えば

1)すべての表示オブジェクトは、(あなたがスケーリング必要)追加の変換制御をBitmapData上に描画することができ、保存されました。変換するには内蔵のPNGEncoderを使用できます。 PNGEncoderが遅いようpnglibが移植されているので、あなたは(それがSDKの例である)、Alchemyを使用して独自のを書くことができ、Additionaly

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

:出力BiteArrayは、指定したファイルに保存することができます。

3)あなたは、コマンドライン引数でのAIRアプリケーションへのSWFへのpathesを渡すことができます

<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

+0

私がその後、一括でファイルを変換することができませんようですか?あれは正しいですか?あなたは試してみる価値があると思いますか(インストール、構文の学習など)? – artsince

+0

ファイルを一括変換することができます。私が言及したように、AIRアプリケーションは引数をサポートしているので、swfのリストを渡して、連続的に変換することができます。私にとっては、試してみる価値はありますが、勉強する必要はありません^^。もう一つの理由 - それは一番簡単な解決策だと思われます(そうでなければ)。 – moropus

関連する問題