Вопрос или проблема
Создать PSD файл из набора изображений
У меня есть задача создать PSD файл из набора изображений, и каждое изображение должно быть помещено в отдельный слой.
Я пробовал psd-tool, но он не совсем подходит для моей задачи.
Я был бы очень признателен за любые идеи по выполнению моей задачи.
Спасибо всем.
Это можно сделать на Python, создавая PSD с использованием изображений; каждое изображение будет находиться в своем слое. Следующий код будет обрабатывать изображения и структуру PSD с использованием библиотек Pillow и psd-tools соответственно. К сожалению, psd-tools
не поддерживает запись в PSD файлы. Вам придется создать базовое изображение собственным кодом, используя что-то вроде PIL.Image
, композировать сами слои в структуру, подобную PSD, а затем экспортировать это с помощью другой библиотеки. Возможно, более простое решение — использовать возможности скриптования Photoshop с помощью JavaScript. Вот простой скрипт, который вы можете запустить в Photoshop, и он делает следующее: создает PSD, в котором каждое изображение является отдельным слоем.
Этот скрипт выбирает папку с изображениями, открывает каждое изображение и дублирует слой в новый документ PSD. Затем он сохраняет результат как многослойный PSD в Photoshop.
var folder = Folder.selectDialog('Выберите папку с изображениями');
var files = folder.getFiles(/\.(jpg|jpeg|png)$/i);
var doc = app.documents.add();
for (var i = 0; i < files.length; i++) {
var file = File(files[i]);
var image = app.open(file);
image.artLayers[0].duplicate(doc);
image.close(SaveOptions.DONOTSAVECHANGES);
}
doc.layers[0].remove();
Ответ или решение
Создание PSD-файла из набора изображений с каждым изображением на отдельном слое является довольно распространенной задачей в графическом дизайне. Поскольку вы пробовали psd-tools
и он вас не удовлетворил, рассмотрим другой подход, который использует возможности скриптования в Photoshop.
Вы можете воспользоваться JavaScript-скриптом, который создаст новый PSD-файл и добавит каждое изображение как отдельный слой. Вот пример скрипта, который вы можете использовать:
var folder = Folder.selectDialog('Выберите папку с изображениями');
var files = folder.getFiles(/\.(jpg|jpeg|png)$/i);
var doc = app.documents.add();
for (var i = 0; i < files.length; i++) {
var file = File(files[i]);
var image = app.open(file);
image.artLayers[0].duplicate(doc);
image.close(SaveOptions.DONOTSAVECHANGES);
}
doc.layers[0].remove();
Как использовать скрипт
- Откройте Photoshop.
- Перейдите в меню
File
->Scripts
->Script Editor...
. - Скопируйте и вставьте приведенный выше JavaScript-код в редактор.
- Сохраните скрипт с расширением
.jsx
. - Закройте редактор и вернитесь в Photoshop.
- Перейдите в меню
File
->Scripts
->Browse...
и выберите ваш скрипт. - Скрипт предложит вам выбрать папку с изображениями. После выбора Photoshop автоматически создаст новый PSD-файл с изображениями, каждый из которых будет находиться на своём слое.
Объяснение скрипта
Folder.selectDialog
– открывает диалог для выбора папки с изображениями.folder.getFiles(/\.(jpg|jpeg|png)$/i)
– получает список всех файлов в выбранной папке с расширениями JPG, JPEG или PNG.app.documents.add()
– создает новый документ в Photoshop.- Цикл
for
проходит по всем изображениям, открывает каждое изображение, дублирует его первый слой в новый документ и, наконец, закрывает изображение без сохранения. doc.layers[0].remove();
– удаляет пустой первоначальный слой, который создается вместе с новым документом.
Этот способ позволяет вам удобно и быстро создать многослойный PSD-файл из набора изображений, что значительно сэкономит ваше время и усилия. Если у вас возникнут какие-либо вопросы или необходимо внести изменения в скрипт, не стесняйтесь спрашивать!