1. Продукты
  2.   Aspose.PSD
  3.   Aspose.PSD FOSS for Python

Aspose.PSD FOSS для Python

Открытая библиотека Python для загрузки, инспектирования и сохранения файлов PSD/PSB с доступом к метаданным слоёв. Под лицензией MIT, не требует Adobe Photoshop.

Open-Source Python библиотека для файлов PSD/PSB

Aspose.PSD FOSS for Python — это бесплатная, лицензированная по MIT, чистая библиотека на Python для загрузки, инспекции, и сохранения файлов Adobe Photoshop PSD и PSB без необходимости наличия Adobe Photoshop или какого-либо проприетарного рантайма. Она предоставляет лёгкую, автономную API, сосредоточенную вокруг PsdImage и Layer, давая Python разработчикам программный доступ к структуре PSD-документа без нативных зависимостей для компиляции. Библиотека читает размеры файла PSD/PSB, цветовой режим, глубину цвета и метод сжатия, и раскрывает каждый слой через PsdImage.layers: каждый Layer сообщает своё имя, границы, непрозрачность, видимость и ключ режима наложения (BlendMode), а также низкоуровневую информацию о каналах (ChannelInformation) и данные маски (LayerMaskData). Подмножество метаданных слоя — имя, границы (left/top/right/bottom) и режим наложения — можно изменять на месте и сохранять обратно на диск с помощью PsdImage.save(); всё остальное на поверхности доступно только для чтения по замыслу в этой FOSS-версии. Aspose.PSD FOSS for Python лицензирована по MIT. Установите её с помощью pip install aspose-psd-foss — у библиотеки нет сторонних нативных зависимостей, используется только стандартная библиотека Python. Для корпоративного семейства продуктов см. Aspose.PSD — Enterprise Product Family.

Загрузка и просмотр файлов PSD/PSB

  • Image.load(file_path) открывает файл и возвращает экземпляр PsdImage
  • PsdImage.width, height и channels_count сообщают размеры холста и количество каналов
  • Сведения заголовка документа читаются из режима цвета и метаданных сжатия разобранного файла
  • PsdImage.layers возвращает полный список объектов Layer в порядке документа

Проверка и каталогизация файлов дизайна

  • Проверить пакет файлов дизайна перед передачей их в последующий процесс
  • Создать лёгкий каталог ресурсов с размерами PSD/PSB и количеством слоёв
  • Обнаружить файлы PSB (large-document), которые требуют иной обработки, чем стандартные PSD

Работа со слоями

  • PsdImage.layers возвращает каждый Layer в порядке следования в документе; каждый Layer раскрывает name, bounds, opacity, is_visible и blend_mode_key
  • Layer.channel_information раскрывает метаданные каналов для более глубокого анализа
  • Layer.channels_count сообщает, сколько каналов изображения содержит слой
  • PsdImage.layers можно переназначить, чтобы удалить или переупорядочить слои

Структура слоя аудита

  • Проверить структуру слоёв PSD без открытия Photoshop
  • Сформировать отчёт о названиях слоёв, их видимости и режимах наложения для обзора дизайна
  • Выявить скрытые или полностью прозрачные слои, оставшиеся после предыдущих правок

Редактировать базовые метаданные слоя

  • Layer.name, Layer.left/top/right/bottom и Layer.blend_mode_key можно установить напрямую
  • PsdImage.save(file_path) сохраняет изменённый документ обратно на диск
  • Повторная загрузка сохранённого файла с помощью PsdImage.load подтверждает корректность кругового прохождения правок
  • Свойства, не перечисленные выше (информация о каналах, данные маски, диапазоны смешивания), вызывают NotSupportedException, если их попытаться установить — эта сборка поддерживает только редактирование метаданных, а не полное переавторство

Лёгкие, скриптируемые правки

  • Переименовывать слои программно в рамках автоматизированного конвейера организации файлов
  • Перемещать или изменять размер ограничивающего прямоугольника слоя без использования инструмента дизайна
  • Пакетно обновлять режимы наложения во множестве файлов для обеспечения согласованности

Просмотр данных канала и ресурса

  • Layer.channel_information предоставляет коллекции метаданных для каждого канала
  • Layer.has_mask_data и has_blending_ranges_data сообщают, присутствуют ли необязательные секции
  • PsdLoadException и PsdSaveException выводят ошибки загрузки/сохранения с понятными сообщениями
  • Все классы являются чистыми Python без скомпилированных модулей расширений

Диагностика и проверка

  • Диагностировать, почему конкретный файл PSD не загружается, используя типизированное исключение вместо общего сообщения об ошибке
  • Проверять, содержит ли слой маску или данные диапазона смешивания перед их обработкой
  • Просматривать метаданные каждого канала для диагностики на уровне формата

Загрузить PSD-файл и просмотреть его слои

Загрузите файл с помощью Image.load, чтобы получить экземпляр PsdImage для PSD-специфичных членов.

from aspose_psd_foss.image import Image
with Image.load("test.psd") as image:
    print(f"Width: {image.width}, Channels: {image.channels_count}, Layers: {len(image.layers)}")

Отредактировать границы слоя и режим наложения, затем сохранить

Границы слоев и режим наложения можно изменить на месте и сохранить обратно на диск.

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

with PsdImage.load("test.psd") as image:
    image.layers[0].left = 10
    image.layers[0].top = 20
    image.layers[0].right = 40
    image.layers[0].bottom = 60
    image.layers[0].blend_mode_key = BlendMode.MULTIPLY
    image.save("edited.psd")

with PsdImage.load("edited.psd") as reloaded:
    print(f"Bounds: {reloaded.layers[0].bounds}, BlendMode: {reloaded.layers[0].blend_mode_key}")

Чтение информации о канале (только для чтения)

Информация о каналах может быть прочитана, но не переопределена — попытка установить её вызывает NotSupportedException.

from aspose_psd_foss.psdimage import PsdImage
with PsdImage.load("test.psd") as image:
    layer = image.layers[0]
    channel_information = layer.channel_information
    print(f"Channel count: {layer.channels_count}, first channel: `NotSupportedException`")
    # layer.channel_information = channel_information  # raises NotSupportedException

Часто задаваемые вопросы

Какая модель лицензирования?

Aspose.PSD FOSS for Python лицензирована по лицензии MIT. Вы можете использовать, модифицировать и распространять её в соответствии с условиями лицензии MIT, в том числе в коммерческих продуктах.

Как установить Aspose.PSD FOSS for Python?

Смотрите раздел установки выше, чтобы узнать текущую команду установки.

Какие форматы может Aspose.PSD FOSS for Python читать и записывать?

Он загружает и сохраняет файлы PSD и PSB (Photoshop large document). Он не рендерит и не экспортирует пиксельные данные в другие растровые форматы, такие как PNG или JPEG.

Какой класс является основной точкой входа?

PsdImage (подкласс Image). Загрузите документ с помощью PsdImage.load, затем прочитайте его коллекцию layers и свойства заголовка.

Могу ли я изменить метаданные слоя?

Да — Layer предоставляет работающий сеттер для нескольких свойств, таких как видимость и имя, а у самого PsdImage.layers есть работающий сеттер для замены коллекции. Некоторые конкретные свойства (информация о каналах, данные маски, диапазоны смешивания и некоторые ресурсы уровня документа) являются только для чтения в этой FOSS-сборке и вызывают NotSupportedException, если попытаться их установить.

  

Ресурсы поддержки и обучения

 Русский