Layer để tải, kiểm tra,
và lưu các tệp Adobe Photoshop PSD và PSB mà không yêu cầu Adobe Photoshop hoặc bất kỳ
môi trường chạy độc quyền. Nó cung cấp một API nhẹ, độc lập, tập trung vào PsdImage và
Layer, cho phép các nhà phát triển .NET truy cập lập trình vào cấu trúc tài liệu PSD mà không có
các phụ thuộc bản địa để biên dịch. Thư viện đọc các kích thước, chế độ màu, độ sâu bit và phương pháp nén của tệp PSD/PSB,
và cung cấp mọi lớp thông qua PsdImage.Layers: mỗi Layer báo cáo tên của nó,
giới hạn, độ mờ, khả năng hiển thị và khóa chế độ hòa trộn (BlendMode), cùng với cấp độ thấp hơn
thông tin kênh (ChannelInformation) và dữ liệu mặt nạ (LayerMaskData). Một tập con của
siêu dữ liệu lớp — tên, giới hạn (Left/Top/Right/Bottom), và chế độ hòa trộn — có thể
được sửa đổi tại chỗ và lưu lại trên đĩa bằng PsdImage.Save(); mọi thứ còn lại trên
bề mặt được thiết kế chỉ đọc trong bản dựng FOSS này. Aspose.PSD FOSS for .NET có giấy phép MIT. Cài đặt nó bằng
dotnet add package Aspose.PSD.FOSS — thư viện không có bất kỳ phụ thuộc bản địa của bên thứ ba nào
phụ thuộc, chỉ có .NET BCL. Đối với họa sản phẩm doanh nghiệp, xem Aspose.PSD — Enterprise Product Family.Image.Load(filePath) hoặc Image.Load(stream) mở một tệp và trả về một Image, ép kiểu sang PsdImage để truy cập đặc thù PSDPsdImage.Width, Height, và Size báo cáo kích thước canvasPsdImage.ColorMode (ColorModes), BitsPerChannel, và Compression (CompressionMethod) mô tả cách dữ liệu pixel được mã hóaPsdImage.Version (PsdVersion) phân biệt PSD tiêu chuẩn với biến thể tài liệu lớn PSBPsdImage.Layers trả về mọi Layer theo thứ tự tài liệu; PsdImage.ActiveLayer báo cáo lớp nào đang hoạt độngLayer cung cấp Name, Bounds, Opacity, IsVisible, và BlendModeKey (BlendMode)Layer.ChannelInformation và Layer.LayerMaskData cung cấp siêu dữ liệu kênh và mặt nạ để kiểm tra sâu hơnLayer.ChannelsCount báo cáo số kênh hình ảnh mà một lớp mang theoLayer.Name, Layer.Left/Top/Right/Bottom, và Layer.BlendModeKey có thể được đặt trực tiếpPsdImage.Save(filePath) hoặc PsdImage.Save(stream) lưu lại tài liệu đã sửa đổi trở lại đĩaImage.Load xác nhận các chỉnh sửa vòng quay đúng cáchNotSupportedException nếu được đặt — bản dựng này hỗ trợ chỉnh sửa chỉ siêu dữ liệu, không phải tái tạo đầy đủPsdImage.ImageResources và GlobalLayerResources cung cấp các bộ sưu tập ResourceBlock/LayerResourcePsdImage.GlobalLayerMaskInfo báo cáo thông tin mặt nạ lớp trên toàn tài liệuPsdImage.IsFlatten và HasTransparencyData báo cáo các cờ ở mức tài liệuPsdLoadException và PsdSaveException hiển thị lỗi tải/lưu với thông điệp rõ ràngTải một tệp bằng Image.Load và ép kiểu kết quả sang PsdImage để sử dụng các thành viên đặc thù của PSD.
using var image = (PsdImage)Image.Load("test.psd");
Console.WriteLine($"Width: {image.Width}, Channels: {image.ChannelsCount}, Layers: {image.Layers.Length}");
Layer layer = image.Layers[0];
Console.WriteLine($"Bounds: {layer.Bounds}, BlendMode: {layer.BlendModeKey}, Opacity: {layer.Opacity}, Visible: {layer.IsVisible}");
Tên lớp, giới hạn và chế độ hòa trộn có thể được thay đổi ngay tại chỗ và lưu lại vào đĩa.
using (var image = (PsdImage)Image.Load("test.psd"))
{
image.Layers[0].Name = "Renamed layer";
image.Layers[0].Left = 10;
image.Layers[0].Top = 20;
image.Layers[0].Right = 40;
image.Layers[0].Bottom = 60;
image.Layers[0].BlendModeKey = BlendMode.Multiply;
image.Save("edited.psd");
}
using var reloaded = (PsdImage)Image.Load("edited.psd");
Console.WriteLine($"Name: {reloaded.Layers[0].Name}, BlendMode: {reloaded.Layers[0].BlendModeKey}");
Thông tin kênh có thể được đọc nhưng không thể gán lại — việc cố gắng thiết lập nó sẽ ném NotSupportedException.
using var image = (PsdImage)Image.Load("test.psd");
Layer layer = image.Layers[0];
ChannelInformation[] channelInformation = layer.ChannelInformation;
Console.WriteLine($"Channel count: {layer.ChannelsCount}, First channel length: `NotSupportedException`");
// layer.ChannelInformation = channelInformation; // throws NotSupportedException
Aspose.PSD FOSS for .NET được cấp phép MIT. Bạn có thể sử dụng, sửa đổi và phân phối lại nó theo các điều khoản của giấy phép MIT, bao gồm trong các sản phẩm thương mại.
Xem phần cài đặt ở trên để biết lệnh cài đặt hiện tại.
Nó tải và lưu các tệp PSD và PSB (Photoshop large document). Nó không thực hiện render hoặc xuất dữ liệu pixel sang các định dạng raster khác như PNG hoặc JPEG.
PsdImage (một lớp con của Image). Tải tài liệu bằng PsdImage.Load, sau đó đọc bộ sưu tập Layers và các thuộc tính tiêu đề.
Có — Layer cung cấp một setter hoạt động cho một số thuộc tính, chẳng hạn như khả năng hiển thị và tên, và PsdImage.Layers tự nó có một setter hoạt động để thay thế bộ sưu tập. Một vài thuộc tính cụ thể (thông tin kênh, dữ liệu mặt nạ, phạm vi hòa trộn và một số tài nguyên cấp tài liệu) chỉ đọc trong bản dựng FOSS này và sẽ ném NotSupportedException nếu được đặt.