簡體   English   中英

在Linux上將SWF文件轉換為PNG圖像

[英]Convert SWF files to PNG images on Linux

在有人發表抱怨說已經回答了類似問題之前,請繼續閱讀。

我一直在開發一個機器人,該機器人從Club Penguin檔案(例如Houndstooth Bag(icon) )中獲取SWF文件,並將該文件呈現為PNG圖像。 目前,我一直在使用Python的swf模塊來執行此操作,但有時會導致不想要的結果 ,並且其他嘗試(swfrender,swfextract,gnash等)會按照網頁上的外觀(如剪切后的樣子)渲染圖像。一半)。

問題是:是否有一種方法可以使用任何Linux程序或Python庫使用腳本進行這些轉換,以使輸出圖像看起來很專業(類似於從JPEXS或任何其他類似的SWF反編譯器導出的圖像)?

我的Python代碼大致上是這樣的(我知道輸出是SVG,但是SVG-PNG轉換非常簡單,因此根本就不用擔心)。

from swf.movie import SWF
from swf.export import SVGExporter

file = open('item.swf', 'rb')

swf = SWF(file)

svg_exporter= SVGExporter()

svg = swf.export(svg_exporter)

open('item.svg', 'wb').write(svg.read())

任何幫助都將不勝感激。

我建議您看一下swftools

圖像提取示例:

$ swfextract myfile.swf

Objects in file myfile.swf:
[-i] 3 Shapes: ID(s) 1-3
[-i] 5 MovieClips: ID(s) 4, 5, 8, 10, 12
[-j] 3 JPEGs: ID(s) 69, 116, 447
[-p] 1 PNG: ID(s) 318
[-s] 3 Sounds: ID(s) 28-30
[-f] 10 Frames: ID(s) 0-10

$ swfextract -p 318 myfile.swf -o out_file.png

還有一個swfrender實用程序,尚未完成,僅適用於非常簡單的SWF文件。 (沒有動作腳本,沒有漸變填充,沒有變形形狀,沒有混合模式,沒有濾鏡等)

$ swfrender myfile.swf -X pixelsize -Y pixelsize -o out_file.png

您可以根據需要檢查python綁定

沒關系,我發現swfbboxswfcombine做了很多工作。 不過,感謝您的幫助。

對於未來的讀者(包括我自己):

$ swfbbox -o newfile.swf file.swf -e
$ swfcombine -s 5000 -o newfile.swf --dummy newfile.swf
$ swfrender -o file.png newfile.swf

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM