-
Notifications
You must be signed in to change notification settings - Fork 21
importing psd with psd tools (ru)
Adobe Photoshop сохраняет проекты в формате PSD. Большинство консольных конвертеров изображений рендерят PSD-файлы с белым фоном, теряя прозрачность. psd-tools — библиотека Python — корректно компонует все слои с полной поддержкой альфа-канала и сохраняет прозрачный фон.
- Python версии 3.8 или новее
- Библиотека
psd-tools— установить один раз с помощью pip:
pip install psd-tools
Сохраните этот скрипт в любом месте на вашей системе (например, psd_to_png.py):
#!/usr/bin/env python3
import sys
from psd_tools import PSDImage
PSDImage.open(sys.argv[1]).composite().save(sys.argv[2])Скрипт принимает два аргумента: путь к исходному PSD-файлу и путь для выходного PNG-файла.
В Godot откройте Project Settings → General → Advanced Settings → Importality и найдите настройку Command Building Rules for Custom Image Loader. Добавьте правило для расширения psd.
Windows:
psd: python C:\путь\до\psd_to_png.py {in_path_b} {out_path_b}
Linux / macOS:
psd: python /путь/до/psd_to_png.py {in_path} {out_path}
Возможно, понадобится использовать python3 вместо python. Так же может понадобиться установить библиотеку явно:
python -m pip install psd-tools
Исправьте путь до скрипта на тот, который используется у вас. После сохранения настроек перезапустите плагин, чтобы он подхватил новое расширение.
Перед тем как использовать правило в плагине, протестируйте команду в терминале:
python3 /путь/до/psd_to_png.py /путь/до/test.psd /tmp/test_out.png
Убедитесь, что test_out.png имеет прозрачный фон.
В Photoshop особый заблокированный слой Background (самый нижний слой, создаваемый по умолчанию в новых документах) по своей природе непрозрачен и белый. psd-tools рендерит его корректно — как непрозрачный, — потому что так он и устроен.
Чтобы получить прозрачный результат, преобразуйте его в обычный слой в Photoshop перед сохранением: двойной клик по слою Background → Layer from Background.
Если вы предпочитаете не устанавливать Python на машину, где запущен Godot, можно создать самодостаточный исполняемый файл с помощью PyInstaller:
pip install pyinstaller
pyinstaller --onefile psd_to_png.py
Полученный бинарный файл в папке dist/ не требует установки Python. Укажите в правиле построения команды путь к нему вместо вызова python.
Контент подвала