Khắc phục sự cố Aspose.PSD FOSS for Python

Khắc phục sự cố Aspose.PSD FOSS for Python

Khắc phục sự cố Aspose.PSD FOSS cho Python

Trang này đề cập đến các vấn đề phổ biến nhất gặp phải khi tải, kiểm tra và lưu tài liệu PSD/PSB bằng Aspose.PSD FOSS cho Python.


Vấn đề khi tải

PsdLoadException với thông báo về phiên bản không được hỗ trợ

Trường phiên bản PSD được khai báo trong tệp không phải là giá trị PSD tiêu chuẩn cũng không phải giá trị PSB cho tài liệu lớn. Hãy xác nhận tệp là tài liệu PSD/PSB hợp pháp, không bị hỏng trước khi tải:

try:
    image = PsdImage.load("input.psd")
except PsdLoadException as ex:
    print(f"Not a valid PSD/PSB file: {ex}")

PsdLoadException về độ dài phần vượt quá giới hạn

Các trường độ dài nội bộ của tệp không khớp với kích thước thực tế của nó — điều này thường có nghĩa là tệp bị cắt ngắn hoặc hỏng, không phải vì nó sử dụng cấu trúc không được hỗ trợ nhưng vẫn hợp lệ. Hãy xuất lại tệp từ ứng dụng nguồn và thử lại.


Vấn đề khi lưu

PsdSaveException về độ dài chuỗi Pascal

Giá trị chuỗi — thường là tên lớp hoặc tài nguyên — vượt quá 255 byte, mức tối đa mà trường chuỗi Pascal của PSD có thể mã hoá:

layer.name = layer.name[:255] if len(layer.name) > 255 else layer.name
image.save("output.psd")

Vấn đề chỉnh sửa

NotSupportedException khi thiết lập thuộc tính

Một số thuộc tính chỉ đọc trong bản FOSS này. Trên PsdImage: active_layer, image_resources, global_layer_resources, has_transparency_data. Trên Layer: channel_information, layer_mask_data, layer_blending_ranges_data. Xem chúng như chỉ lấy — không gán giá trị cho chúng.

Độ mờ của lớp trông không đúng sau khi đã thiết lập

Layer.opacity thường là giá trị từ 0-255, không phải phần thập phân 0.0-1.0 hay phần trăm:

layer.opacity = 200  # approximately 78% opaque, not 200%

Việc loại bỏ lớp không có hiệu lực

PsdImage.layers có một setter hoạt động ở mức bộ sưu tập, nhưng các phần tử riêng lẻ trong danh sách không thể đơn giản bị xóa tại chỗ — hãy gán lại toàn bộ danh sách đã lọc:

image.layers = [l for l in image.layers if l.name != "Unwanted Layer"]

Vấn đề cài đặt

Không tìm thấy gói

Xác nhận danh tính chính xác của gói:

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

Danh sách kiểm tra chẩn đoán

Trước khi mở một yêu cầu hỗ trợ, hãy thực hiện qua danh sách kiểm tra này:

  1. Xác nhận tệp thực sự là PSD/PSB — a PsdLoadException về một phiên bản không được hỗ trợ thường có nghĩa là tệp không phải là tài liệu PSD/PSB thực.
  2. Kiểm tra NotSupportedException — bạn có thể đang đặt một trong 7 thuộc tính chỉ đọc được liệt kê ở trên thay vì đọc nó.
  3. Verify opacity nằm trong khoảng 0-255, không phải 0.0-1.0 hoặc 0-100.
  4. Giữ các giá trị chuỗi dưới 255 byte trước khi lưu, để tránh PsdSaveException.
  5. Call image.save sau mỗi lần chỉnh sửa — các thay đổi đối với một Layer đối tượng không được lưu lại cho tới khi tài liệu được lưu.

Xem thêm

 Tiếng Việt