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ột PsdImage cho đầ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; PsdImage hỗ trợ giao thức quản lý ngữ cảnh để dọn dẹp.
  • Xem image_resources, global_layer_resources, active_layer và has_transparency_data như chỉ đọc ngay cả khi chúng có setter.
  • Kiểm tra image.layer_count trước khi truy cập chỉ mục vào image.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ânKhắc phục
NotSupportedException khi thiết lập image_resourcesThuộ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ẳngis_flatten là True và tài liệu không có lớp đã phân tíchKiể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ứcMô 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_flattenThuộc tính tiêu đề tài liệu
PsdImage.image_resourcesCác khối tài nguyên hình ảnh đã phân tích (chỉ đọc)

Xem thêm

 Tiếng Việt