Устранение неполадок Aspose.PSD FOSS for Python
Устранение неполадок Aspose.PSD FOSS для Python
На этой странице рассматриваются наиболее распространённые проблемы, возникающие при загрузке, проверке и сохранении документов PSD/PSB с помощью Aspose.PSD FOSS для Python.
Проблемы при загрузке
PsdLoadException с сообщением об неподдерживаемой версии
Объявленное в файле поле версии PSD не соответствует ни стандартному PSD, ни значению для больших документов PSB. Убедитесь, что файл является подлинным, неповреждённым документом PSD/PSB перед загрузкой:
try:
image = PsdImage.load("input.psd")
except PsdLoadException as ex:
print(f"Not a valid PSD/PSB file: {ex}")PsdLoadException о том, что длина секции превышает границу
Внутренние поля длины файла не соответствуют его реальному размеру — обычно это означает, что файл усечён или повреждён, а не то, что он использует неподдерживаемую, но в остальном корректную структуру. Экспортируйте файл заново из исходного приложения и повторите попытку.
Проблемы при сохранении
PsdSaveException о длине Pascal-строки
Значение строки — обычно имя слоя или ресурса — превышает 255 байт, максимальное количество, которое может закодировать поле Pascal-строки в PSD:
layer.name = layer.name[:255] if len(layer.name) > 255 else layer.name
image.save("output.psd")Проблемы при редактировании
NotSupportedException при установке свойства
Некоторые свойства доступны только для чтения в этой сборке FOSS. На PsdImage: active_layer, image_resources, global_layer_resources, has_transparency_data. На Layer: channel_information, layer_mask_data, layer_blending_ranges_data. Считайте их только для получения — не присваивайте им значения.
Непрозрачность слоя выглядит неправильно после её установки
Layer.opacity обычно представляет значение от 0 до 255, а не дробь 0.0-1.0 или процент:
layer.opacity = 200 # approximately 78% opaque, not 200%Удаление слоя не вступает в силу
PsdImage.layers имеет работающий сеттер на уровне коллекции, но отдельные элементы списка нельзя просто удалить на месте — переприсвоить весь отфильтрованный список:
image.layers = [l for l in image.layers if l.name != "Unwanted Layer"]Проблемы с установкой
Пакет не найден
Подтвердите точную идентификацию пакета:
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Диагностический чек-лист
Прежде чем открывать запрос в поддержку, пройдите этот чек-лист:
- Подтвердите, что файл действительно PSD/PSB — a
PsdLoadExceptionо неподдерживаемой версии обычно означает, что файл не является настоящим документом PSD/PSB. - Проверьте
NotSupportedException— возможно, вы устанавливаете одно из 7 свойств только для чтения, перечисленных выше, вместо того чтобы читать его. - Verify
opacityнаходится в диапазоне 0-255, а не 0.0-1.0 или 0-100. - Сохраняйте строковые значения менее 255 байт перед сохранением, чтобы избежать
PsdSaveException. - Call
image.saveпосле каждого редактирования — изменения вLayerэкземпляры не сохраняются до тех пор, пока документ не будет сохранён.