Lõi API
API cốt lõi
PsdImage là điểm vào để tải, kiểm tra và lưu các tài liệu PSD/PSB. Nó mở rộng lớp cơ sở trừu tượng Image, lớp này chỉ khai báo load() — phần còn lại của bề mặt tài liệu (width, height, save(), hỗ trợ context-manager) được định nghĩa trên PsdImage tự nó, không được kế thừa.
Tải và Lưu Tài Liệu
Image.load() chấp nhận một đường dẫn tệp hoặc một luồng và trả về một Image; đối với đầu vào PSD/PSB thì luôn luôn là một PsdImage, vì vậy bề mặt tài liệu có sẵn ngay lập tức mà không cần ép kiểu rõ ràng. PsdImage cũng hỗ trợ câu lệnh with để tự động dọn dẹp, và PsdImage.save() ghi tài liệu trở lại vào một đường dẫn tệp hoặc luồng.
from aspose_psd_foss.psdimage import PsdImage
with PsdImage.load(input_path) as image:
# ... inspect or edit ...
image.save(output_path)Các Thuộc Tính Header Tài Liệu
PsdImage hiển thị header đã phân tích dưới dạng các thuộc tính có kiểu: width, height, bits_per_channel, color_mode, version, compression, size, và is_flatten.
print(f"Width: {image.width}, Height: {image.height}")
print(f"ColorMode: {image.color_mode}, Version: {image.version}")
print(f"Compression: {image.compression}, IsFlatten: {image.is_flatten}")Tài Nguyên Hình Ảnh
PsdImage.image_resources trả về danh sách đã phân tích của các đối tượng ResourceBlock. Trong bản dựng FOSS này, image_resources, global_layer_resources, active_layer và has_transparency_data có thể được đọc nhưng không thể gán lại — các setter của chúng gây ra NotSupportedException.
for resource in image.image_resources:
print(f"Resource {resource.id}: {resource.name} ({resource.data_size} bytes)")Mẹo và Thực hành Tốt nhất
Image.load()đã trả về mộtPsdImagecho đầu vào PSD/PSB — không cần ép kiểu, không giống như một số cổng ngôn ngữ khác của thư viện này.- Sử dụng câu lệnh
with;PsdImagehỗ trợ giao thức quản lý ngữ cảnh để dọn dẹp. - Xem
image_resources,global_layer_resources,active_layervàhas_transparency_datanhư chỉ đọc ngay cả khi chúng có setter. - Kiểm tra
image.layer_counttrước khi truy cập chỉ mục vàoimage.layers— một tài liệu đã làm phẳng có thể không có lớp nào.
Các vấn đề thường gặp
| Vấn đề | Nguyên nhân | Khắc phục |
|---|---|---|
NotSupportedException khi thiết lập image_resources | Thuộc tính này chỉ đọc trong bản dựng FOSS mặc dù có setter | Đọc giá trị; không cố gắng gán lại nó |
Danh sách image.layers trống trên tài liệu đã được làm phẳng | is_flatten là True và tài liệu không có lớp đã phân tích | Kiểm tra image.layer_count (hoặc image.is_flatten) trước khi lập chỉ mục vào image.layers |
FAQ
Việc tải tài liệu PSD có giải mã dữ liệu pixel không?
Không. PsdImage.load() phân tích tiêu đề tài liệu, siêu dữ liệu lớp, và các tài nguyên mà không giải mã hay render dữ liệu pixel.
Tôi có thể chuyển đổi tệp PSD sang định dạng ảnh khác không?
Không. Thư viện này chỉ tải, kiểm tra và lưu các tài liệu PSD/PSB — nó không render dữ liệu pixel hoặc chuyển đổi sang các định dạng ảnh khác.
API Reference Tóm tắt
| Lớp/Phương thức | Mô tả |
|---|---|
Image.load(path) / Image.load(stream) | Tải tài liệu PSD hoặc PSB |
PsdImage.save(path) / PsdImage.save(stream) | Lưu tài liệu |
PsdImage.width / height / bits_per_channel / color_mode / version / compression / size / is_flatten | Thuộc tính tiêu đề tài liệu |
PsdImage.image_resources | Các khối tài nguyên hình ảnh đã phân tích (chỉ đọc) |