Lõi API

API cốt lõi

PsdImage là điểm vào để tải, kiểm tra và lưu tài liệu PSD/PSB. Nó mở rộng lớp cơ sở trừu tượng Image, lớp này khai báo Width, Height, Bounds, Load(), Save() và Dispose().


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 Stream và trả về một Image; ép kiểu kết quả sang PsdImage để truy cập phần còn lại của bề mặt tài liệu. PsdImage.Save() ghi tài liệu trở lại vào một đường dẫn tệp hoặc luồng.

using var image = (PsdImage)Image.Load(inputPath);
// ... inspect or edit ...
image.Save(outputPath);

Thuộc tính Tiêu đề Tài liệu

PsdImage hiển thị tiêu đề đã phân tích dưới dạng các thuộc tính có kiểu: Width, Height, BitsPerChannel, ColorMode, Version, Compression, Size và IsFlatten.

Console.WriteLine($"Width: {image.Width}, Height: {image.Height}");
Console.WriteLine($"ColorMode: {image.ColorMode}, Version: {image.Version}");
Console.WriteLine($"Compression: {image.Compression}, IsFlatten: {image.IsFlatten}");

Tài nguyên Hình ảnh

PsdImage.ImageResources trả về mảng ResourceBlock[] đã phân tích. Trong bản dựng FOSS này, ImageResources, GlobalLayerResources, ActiveLayer và HasTransparencyData có thể được đọc nhưng không thể gán lại — các setter của chúng ném NotSupportedException.

foreach (ResourceBlock resource in image.ImageResources)
{
    Console.WriteLine($"Resource {resource.ID}: {resource.Name} ({resource.DataSize} bytes)");
}

Mẹo và Thực hành tốt nhất

  • Luôn chuyển kiểu kết quả của Image.Load() sang PsdImage để truy cập các thành viên đặc thù của PSD.
  • Bao quanh các đối tượng có giá trị Dispose() bằng một câu lệnh using; PsdImage triển khai IDisposable.
  • Xem ImageResources, GlobalLayerResources, ActiveLayer và HasTransparencyData là chỉ đọc mặc dù chúng cung cấp một setter.
  • Kiểm tra image.Layers.Length trước khi truy cập 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 ImageResourcesThuộ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ó
Mảng image.Layers rỗng trên tài liệu đã làm phẳngIsFlatten là true và tài liệu không có lớp đã phân tíchKiểm tra image.Layers.Length (hoặc image.IsFlatten) trước khi đánh 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ã hoặc hiển thị 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 hiển thị 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(string) / Image.Load(Stream)Tải tài liệu PSD hoặc PSB
PsdImage.Save(string) / PsdImage.Save(Stream)Lưu tài liệu
PsdImage.Width / Height / BitsPerChannel / ColorMode / Version / Compression / Size / IsFlattenThuộc tính tiêu đề tài liệu
PsdImage.ImageResourcesCác khối tài nguyên hình ảnh đã phân tích (chỉ đọc)

Xem thêm

 Tiếng Việt