#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)