Пакетная обработка изображений - PullRequest
1 голос
/ 16 ноября 2011

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

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

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

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

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

Вопросы:

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

Ответы [ 3 ]

1 голос
/ 17 ноября 2011

Должна быть возможность использовать язык, такой как 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

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

0 голосов
/ 18 декабря 2011

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

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

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

0 голосов
/ 17 ноября 2011

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

...