Предисловие
Представьте себе такую ситуацию: технология Flash давно ушла в небытие. В связи с этим возникла необходимость переделать панорамы и виртуальные туры под HTML5/Web. Вдруг выясняется, что исходные изображения панорам где-то потерялись и как назло не сохранились исходные фотографии для сборки панорам. Имеются только файлы с расширением *.swf и множество сопутствующих файлов. И вы задаетесь одним вопросом: возможно ли любой ценой восстановить jpeg-изображения из формата Flash?
Мой ответ: это возможно.
Сначала оговорюсь, что в статье речь пойдет о восстановлении изображения панорамы максимально доступного размера и качества. При экспорте в целях уменьшения веса данных занижают качество и размер экспортируемых изображений. Фарш обратно через мясорубку не перекрутишь, а восстановление панорамы из фрагментов возможно, хотя при этом итоговый результат будет более низкого качества, чем первоначальный оригинал.
Из swf-файла можно извлечь изображения и работать как со сторонами куба, например, в Pano2VR, или восстановить цилиндрическую панораму путем объединения изображений. Хотя всё зависит от того, как был создан Flash-файл: с внедрением всех изображений в файл или с частичным расположением изображений во внешней папке. В последнем случае изображения уже имеются и ковыряться в swf-файле нет необходимости.
Восстановление цилиндрической панорамы
Для примера я взял swf-файл с панорамой, который скачал ранее по ссылке присланной автором, обратившимся ко мне по поводу помощи с решением вышеназванной проблемы.
Для начала извлечем необходимые изображения из swf-файла. Для декомпиляции воспользуемся бесплатной программой JPEXS Free Flash Decompiler, в котором откроем наш swf-файл.
После загрузки файла в программу будет построено дерево объектов. Здесь нас интересует секция «images», а в ней разделы «DefineBitsJPEG2». В скобках указаны классы «GGRPimgpreNClass», «GGRPimgimgNClass», где N — порядковый номер. Нас интересуют изображения с классом «GGRPimgimgNClass». Выделим их все (107 — 112) в дереве или в списке с эскизами справа, вызовем с помощью ПКМ меню и выберем пункт «Export selection».
В появившемся окне выберем формат JPEG и нажмем кнопку OK.
Затем выберем место, в которое будут экспортированы изображения.
В выбранной папке появится создан каталог «images» с экспортированными изображениями.
На этом этапе работа с декомпилятором завершена. Вся дальнейшая работа будет производиться в любом графическом редакторе, которым вы владеете, например, Adobe Photoshop. Необходимо все изображения выстроить в одну линию.