Определить, если .swf имеет прозрачный фон - PullRequest
9 голосов
/ 13 мая 2011

Есть ли способ сделать это программно на PHP, Python или Java?

Вариант использования:

  • Пользователь загружает .swf через форму загрузки.
  • Определите, имеет ли он прозрачный фон.
  • Если он есть, замените его на что-нибудь другое, например, на белый.

Ответы [ 6 ]

4 голосов
/ 21 мая 2011

Это очень трудно определить, потому что все SWF действительно прозрачны (или все они могут быть) - просто они могут содержать формы, которые покрывают всю сцену, что делает их непрозрачными .

Чтобы определить это программно, вам нужно перебрать каждую фигуру в SWF и посмотреть на ее границы. Однако этого будет недостаточно, поскольку с помощью блоков ActionScript можно изменять любые фигуры, а во время выполнения можно создавать новые фигуры.

Но на самом деле сделать их прозрачными - сложная задача. Поскольку вы хотите убедиться, что они непрозрачны, вы можете просто решить эту проблему во время отображения - поместить цветной div за объектом или тегом embed.

3 голосов
/ 19 мая 2011

Наверное, невозможно.Я предлагаю установить флажок в форме загрузки «Это флэш-приложение выглядит лучше всего с прозрачным фоном».

Здесь - это флэш-приложение с прозрачным фоном для запуска - слайдер, который позволяетВы регулируете непрозрачность

Как видите, невозможно сказать "прозрачный" или "непрозрачный"

1 голос
/ 21 мая 2011

Flash - это набор скомпилированных двоичных данных.Вы могли бы быть в состоянии выследить стороннюю библиотеку, которая может откомпилировать флэш-файл и получить некоторые данные из корневой сцены фильма, но это большая протяженность.Как и другие рекомендовали, флажок во время загрузки будет лучшим маршрутом.

1 голос
/ 19 мая 2011

Насколько я знаю, вы не можете получить фоновую альфа (прозрачность) SWF-файла.что бы я делал на вашем месте, поместил бы загруженный SWF-файл в SWF-контейнер (загрузите в него загруженный SWF-файл), у которого есть только цвет фона на ваш выбор.

Раньше был PHP-читатель SWF в эта ссылка .Но я так и не увидел в нем никакой альфа-информации.

0 голосов
/ 20 мая 2011

Файлы swf обрабатываются плагинами, работающими внутри или снаружи браузера.Невозможно определить, имеет ли определенная вспышка прозрачный фон или нет ... Я думаю, вы можете предположить, что все они прозрачные.

0 голосов
/ 19 мая 2011

Я думаю, что вы можете прочитать .html, где находится .swf, и посмотреть, есть ли параметр с именем "wmode" и установлен ли он в "прозрачный"

Если это так, вы можете получить html-файл и прочитать его на Python, Java или PHP.

Это уродливое решение, но это решение.

PS: Извините за мой плохой английский.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...