Пакетная Обрезка Изображения

У меня есть флэш-файл FLA, который содержит много изображений. Большая часть каждого изображения состоит из прозрачных пикселей с визуальным объектом где-то там. Каждое изображение в данный момент находится в {x:0, y:0}.

Я хочу обрезать прозрачные пиксели изображения до минимального ограничивающего прямоугольника, но сохранить объект в той же глобальной позиции. Это требует смещения обрезанного изображения в глобальное положение объекта на необрезанном изображении.

Это не такая большая проблема, но проблема заключается в том, что все изображения содержатся во флаге. Варианты, которые я вижу на данный момент:

  • исследовать JSFL, у объекта Bitmap есть getPixels, это в сочетании с операцией выбора и удаления может работать

  • сохраните fla в xfl и перечислите изображения и связанный xml с чем-то вроде Ruby + обработка изображений lib

Вопросы:

  • Кто-нибудь знает заранее, если эта операция возможна в JSFL?
  • Кто-нибудь делал много автоматической обработки файлов xfl?
  • Есть ли готовый процессор изображений, который может выполнить эту операцию обрезки?

3 ответа

Должна быть возможность использовать такой язык, как Ruby, чтобы найти все файлы изображений в структуре каталогов проекта xfl и отредактировать их с помощью программы, такой как ImageMagick (которая бесплатна и работает с различными языками сценариев).

Этот парень хорошо объясняет, как получить доступ к вашим ресурсам из документа XFL: http://blog.mencio.com/?p=121

Вот ссылка на удаление пикселей границы на форуме ImageMagick: http://www.imagemagick.org/discourse-server/viewtopic.php?f=1&t=11103&start=0

Надеюсь, этого достаточно, чтобы вы начали.

Возможно, вы захотите попробовать выполнить обрезку автоматически в ActionScript во время использования изображений. Сдвиг цвета изображения в один цвет и использование пиксельных методов для определения ограничивающей области. Это похожая техника, используемая здесь.

Я решил эту проблему в Photoshop. Используя язык сценариев PS, выборка может иметь несколько регионов, и вы можете получить доступ к этим "островам" через код.

В приведенном выше примере я нашел (автоматически) положение {x,y} всех отдельных островов, обрезал графику острова и сохранил каждый остров в виде отдельного файла изображения. Местоположение {x,y} стало частью имени файла. Я не построил часть JSFL во Flash, которая бы считывала имена файлов и размещала их в соответствии с {x,y} в имени; но вместо этого сделал это вручную.

Если вы можете экспортировать все ваши изображения, вы можете использовать этот скрипт PS, чтобы найти местоположение и обрезать изображения. Было бы довольно непростой задачей написать сценарий JSFL для позиционирования изображений.

Другие вопросы по тегам