2011-08-16 1 views
0

swf 페이지에서 png 파일로 변환하려고합니다. 파일을 변환하기 전에 swf 파일을 확대하여 더 큰 이미지를 얻고 싶습니다. 변환 할 swftools를 사용해 보았지만 png 이미지 품질이 충분하지 않습니다. 확대 된 PNG 이미지가 너무 흐리게 보입니다.확대/축소 된 swf 파일 복사본 저장 방법

확대/축소 버전의 swf 파일을 캡처/사용하려면 어떻게해야합니까? 수백 개의 이미지를 변환하려고 할 때 Linux 호환 명령 행 도구가 유용 할 것입니다.

덕분에 많은

답변

2

그것은 리눅스 방법은 아니지만, 나는 아무 것도 상상할 수 없습니다.

내 솔루션은 SWF 파일을로드하여 화면에 추가하고 "프리 스크린"을 만들고 png에 프린트 스크린을 저장하는 AIR 응용 프로그램을 작성하는 것입니다.

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

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

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 속도가 느린로 pnglib은 (는 SDK 예제에) 이식되기 때문에, 당신은 당신의 자신의 Alchemy를 사용하여 작성할 수 있습니다.

3) 당신은 명령 행 인수에 AIR 응용 프로그램에 국부 펀드로하는 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