Скрипт для экспорта непрозрачных концов файлов PNG

#php #image-processing #applescript #photoshop #photoshop-script

#php #обработка изображений #applescript #photoshop #photoshop-скрипт

Вопрос:

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

Мне нужен скрипт со следующим вводом, обработкой и выводом.

Ввод :

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

Четырехугольное изображение

Обработка :

Скрипту потребуется перебирать эти изображения и определять приблизительные края фигур.

Координаты

Вывод :

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

 image-18473003783.png; 27,144; 406,241; 116,297; 468,386
  

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

Опять же, я открыт для предложений относительно методологии и языка, используемых для достижения желаемого результата.

Комментарии:

1. Имеет ли каждое изображение один четырехугольник? Существуют ли какие-либо ограничения на форму и цвет четырехугольника? Будут ли все четырехугольники выпуклыми?

Ответ №1:

То, что вам нужно, — это границы слоя. Вот что вам нужно в javascript — возможно, вы сможете преобразовать информацию здесь в applescript или адаптировать ее к тому, что вам нужно.

 //pref pixels
app.preferences.rulerUnits = Units.PIXELS;

// call the source document
var srcDoc = app.activeDocument;
var myDocName = srcDoc.name;

// set current width values
var W = srcDoc.width.value;
var H = srcDoc.height.value;

var x = srcDoc.activeLayer.bounds[0]
var y = srcDoc.activeLayer.bounds[1]
var x1 = srcDoc.activeLayer.bounds[2]
var y1 = srcDoc.activeLayer.bounds[3]

alert(myDocName   " "  x   ", "   y   ", "   x1   ", "   y1)