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()sangPsdImageđể 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ệnhusing;PsdImagetriển khaiIDisposable. - Xem
ImageResources,GlobalLayerResources,ActiveLayervàHasTransparencyDatalà chỉ đọc mặc dù chúng cung cấp một setter. - Kiểm tra
image.Layers.Lengthtrước khi truy cậpimage.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 ImageResources | 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ó |
Mảng image.Layers rỗng trên tài liệu đã làm phẳng | IsFlatten là true và tài liệu không có lớp đã phân tích | Kiể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ức | Mô 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 / IsFlatten | Thuộc tính tiêu đề tài liệu |
PsdImage.ImageResources | Các khối tài nguyên hình ảnh đã phân tích (chỉ đọc) |