2011-04-22 66 views
1

是否有任何庫/模塊可用於我可以從swf文件生成圖像?從swf生成圖像

我試圖解決的問題是:我想從一個網頁創建一個PDF,我有這樣做,當網頁都有SWF (question in stackoverflow) 我在想的問題,如果我能夠讀取SWF寫出來的圖像,我將能夠解決這個問題

上面會感謝你的幫助,感謝

+1

你能爲你的問題添加更多細節嗎? – Sparky 2011-04-22 21:12:20

+0

不簡單。 AFAIK沒有任何開源的Flash播放器(swfdec,gnash)可以可靠地工作。這隻剩下專有的Flash插件,它不是從腳本中調用的。您可能必須編寫一個Web瀏覽器腳本,或者至少一個可以處理該插件的渲染引擎(webkit/gecko)。 – 2011-04-22 22:45:58

回答

1

事實上,這是一個相當艱鉅的任務。我花了幾個小時尋找一個可以完成這樣的任務的程序。但是,我最終只找到一個。它不是開源的,但我真的會幫助你。

Flash Animation Source可以輸出SWF文件的所有幀。它使用DirectShow過濾器來執行此操作。因此,如果您不想使用WINE,則需要Windows操作系統。

簡而言之,您只需要在計算機上安裝Flash Animation Source,然後找到一種使用所需編程語言獲取DirectShow幀的方法。其他一切其實都很簡單。您將Windows目錄和SWF文件的名稱告訴Windows,它將完成剩下的工作,從而爲您提供圖像。你知道DirectShow過濾器可以傳送視頻的所有幀嗎?因此,你可以選擇你想要的那一個。

順便說一下,請不要試圖找到另一種方式來獲取SWF文件的圖像。相信我,你不會找到一個。我已經找到了一個適合我需求的開源程序,但它們都失敗了。您需要爲您的輸出使用專有的Adobe Flash播放器。沒有其他選擇,因爲開源替代品仍然需要大量開發才能真正輸出基於矢量的幀。

+0

哇,它工作。謝謝Fabianius,我可以在包中包含的示例應用程序中打開普通的swf文件。我被困在閱讀通過flashvars獲取參數的swf文件,你有什麼想法嗎? – SAN 2011-04-23 10:01:39

+0

看看隨程序附帶的IdlFile。它向您展示瞭如何設置SWF文件和其他選項的寬度和高度。在你的情況下,使用'HRESULT SetVariable([in] BSTR bstrName,[in] BSTR bstrValue);'設置閃存變量。 – Fabianius 2011-04-23 10:16:40