Отрисовка swf в png или другой формат изображения
Как я могу в linux отобразить swf в файл изображения? Мне нужно иметь возможность загружать другие swfs в этот swf и запускать код actionscript.
Это вообще возможно в linux? Мне нужно сделать это с PHP, это нормально, если мне нужно использовать инструменты командной строки.
3 ответов
swfrender
с swftools работает для основных файлов SWF.
swfdec-thumbnailer
С swfdec-gnome работает, хотя он получает только первый кадр swf.
чтобы получить любой кадр из swf с помощью swfdec, см. фрагмент кода C в следующем списке рассылки в должности.
gnash
С скрежещут работает gnash -s<scale-image-factor> --screenshot last --screenshot-file output.png -1 -r1 input.swf
, последнее изображение swf.
ffmpeg
С ffmpeg также работает для некоторых форматов swf ffmpeg -i movie.swf -f image2 -vcodec png movie%d.png
Также см. ниже руководство для конвейера командной строки.
для вызова внешних программ с php вы используете документирована здесь.
обратите внимание, что по соображениям безопасности важно избежать аргументов, переданных exec
С другой командой, как escapeshellcmd
или escapeshellarg
по соображениям безопасности.
после преобразования в формат изображения для одного кадра или для всего кадра вы не можете запустить сценарий действий. Другие инструменты, отличные от GNU / Linux, поддерживают экспорт скрипта действий из SWF.
если SWF, который вы экспортируете в PNG, слишком сложен для других инструментов, чем вы можете использовать плагин Flash или Gnash
и Xvfb
вместе с программным обеспечением захвата экрана, чтобы захватить либо кадры изображения SWF или формат видео, как avi. Затем вы можете извлечь изображения из видеоформата.
этот виртуальный метод фреймбуффера будет поддерживать сложные SWF-файлы, хотя он требует много работы, так как вам нужно использовать либо Gnash и Xvfb и захват экрана, либо браузер , Xvfb и Selenium, если вы хотите захватить определенный набор взаимодействий мыши / клавиатуры с SWF.
Gnash с виртуальным Фреймбуффером и без него должен загружать ActionScript перед экспортом, но может иметь проблемы со сложным ActionScript. Flash-плагин с виртуальным Фреймбуффером загрузит В ActionScript перед экспортом.
Также см. Следующие вопросы StackOverFlow, которые вы задаете, являются дубликатом
Это решение, которое я использовал.
вы можете использовать такой инструмент, как Xvfb (сервер X11) и запустите автономный проектор flash player внутри него (вам может потребоваться установить кучу 32-разрядных библиотек), затем используйте утилиту захвата экрана, такую как импорт чтобы захватить экран и обрезать его по размеру.
нашел на этой странице при рендеринге скриншотов swf в linux полезно. Он также говорит, что вы можете использовать gnash для этого, однако gnash не будет работать для flash player 9+.
попробуйте это приложение airhttp://swfrenderer.kurst.co.uk
он отображает swf кадр за кадром