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:$PYTHONPATHDanh 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:
- Xác nhận tệp thực sự là PSD/PSB — a
PsdLoadExceptionvề 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. - 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ó. - Verify
opacitynằm trong khoảng 0-255, không phải 0.0-1.0 hoặc 0-100. - Giữ các giá trị chuỗi dưới 255 byte trước khi lưu, để tránh
PsdSaveException. - Call
image.savesau mỗi lần chỉnh sửa — các thay đổi đối với mộtLayerđối tượng không được lưu lại cho tới khi tài liệu được lưu.