Вступ

Aspose.PSD FOSS для Python — це нова бібліотека з відкритим кодом для роботи з файлами PSD і PSB (Photoshop large document) з коду Python. Вона випущена під ліцензією MIT, не має сторонніх нативних залежностей і вимагає лише стандартну бібліотеку Python під час виконання. Пакет імпортується як aspose_psd_foss.

Бібліотека організована навколо класу PsdImage, який успадковується від абстрактного базового класу Image, а також класу Layer. Image.load() / PsdImage.load() завантажують документ з файлового шляху або потоку, надаючи інформацію про заголовок (width, height, color_mode, version, compression) та розпарсовану колекцію layers; PsdImage.save() записує документ назад у файл або потік. Обидва класи підтримують оператор with для автоматичного очищення. Кожен Layer надає власні метадані — name, bounds, is_visible, opacity, clipping, blend_mode_key та інформацію про канали/маски — і підмножина цих властивостей може бути змінена на місці та збережена у файл.

Цей реліз призначений для розробників, які потребують інспектувати або вносити обмежені метадані у файли PSD/PSB у кодовій базі Python без комерційної ліцензії — інструменти конвеєра активів, що повідомляють про структуру шарів, скрипти збірки, які перейменовують або перемикають видимість шарів перед передачею, або тестові фікстури, які повинні читати заголовок PSD та дані шарів без повноцінного рушія рендерингу. Бібліотека не рендерить піксельні дані і не конвертує PSD/PSB в інші формати зображень — вона є читачем/записувачем, орієнтованим на метадані, для контейнерного формату PSD/PSB.


Що включено

Інспекція документа

PsdImage.load() розбирає заголовок файлу PSD або PSB у типізовані властивості — width, height, bits_per_channel, color_mode, version, compression, size та is_flatten — без декодування піксельних даних.

from aspose_psd_foss.psdimage import PsdImage

with PsdImage.load("input.psd") as image:
    print(f"Width: {image.width}, Height: {image.height}")
    print(f"ColorMode: {image.color_mode}, Version: {image.version}")
    print(f"Layers: {image.layer_count}, Compression: {image.compression}")

Метадані шару

Кожен запис у PsdImage.layers є Layer, який викриває власні межі, видимість, прозорість, обрізання та метадані режиму змішування.

from aspose_psd_foss.psdimage import PsdImage

with PsdImage.load("input.psd") as image:
    for layer in image.layers:
        print(f"{layer.name}: {layer.bounds}, Visible={layer.is_visible}, Opacity={layer.opacity}")

Підтримувані редагування метаданих

Підмножину властивостей шару можна змінювати безпосередньо та записувати назад за допомогою PsdImage.save(): назва, видимість, прозорість, обрізання, ключ режиму змішування та чотири межі.

from aspose_psd_foss.psdimage import PsdImage
from aspose_psd_foss.layers.blendmode import BlendMode

with PsdImage.load("input.psd") as image:
    layer = image.layers[0]
    layer.name = f"{layer.name} (edited)"
    layer.is_visible = not layer.is_visible
    layer.opacity = 128
    layer.blend_mode_key = BlendMode.MULTIPLY
    image.save("output.psd")

Швидкий старт

Встановіть пакет, потім завантажте файл PSD або PSB, проаналізуйте його шари та збережіть його назад:

git clone https://github.com/aspose-psd-foss/Aspose.PSD-FOSS-for-Python.git
cd Aspose.PSD-FOSS-for-Python
# No packaging manifest is published yet -- run from this folder,
# or add it to PYTHONPATH:
export PYTHONPATH=$PWD:$PYTHONPATH
from aspose_psd_foss.psdimage import PsdImage

with PsdImage.load("input.psd") as image:
    print(f"Width: {image.width}, Height: {image.height}, Layers: {image.layer_count}")

    for layer in image.layers:
        print(f"  {layer.name}: {layer.bounds}")

    image.save("output.psd")

Підтримувані формати

ФорматРозширенняЧитатиЗаписувати
PSDpsd✓✓
PSBpsb✓✓

Відкритий код і ліцензування

Aspose.PSD FOSS для Python має ліцензію MIT і може використовуватися в комерційних продуктах без роялті, без водяного знаку оцінки та без обмежень використання.

Бібліотека не має сторонніх нативних залежностей— лише стандартна бібліотека Python потрібна під час виконання.


Початок роботи

Пов’язані ресурси