Khắc phục sự cố Aspose.PSD FOSS for .NET
Khắc phục sự cố Aspose.PSD FOSS cho .NET
Trang này đề cập đến các vấn đề phổ biến nhất gặp phải khi tải, kiểm tra và lưu tài liệu PSD/PSB bằng Aspose.PSD FOSS cho .NET.
Vấn đề khi tải
PsdLoadException với thông báo về phiên bản không được hỗ trợ
Trường phiên bản PSD được khai báo trong tệp không phải là phiên bản PSD tiêu chuẩn cũng không phải giá trị PSB cho tài liệu lớn. Xác nhận tệp là tài liệu PSD/PSB chính hãng, không bị hỏng trước khi tải:
try
{
using var image = PsdImage.Load("input.psd");
}
catch (PsdLoadException ex)
{
Console.WriteLine($"Not a valid PSD/PSB file: {ex.Message}");
}PsdLoadException về độ dài phần vượt quá giới hạn
Các trường độ dài nội bộ của tệp không nhất quán với kích thước thực tế — điều này thường có nghĩa là tệp bị cắt ngắn hoặc hỏng, chứ không phải vì nó sử dụng cấu trúc không được hỗ trợ nhưng vẫn hợp lệ. Hãy xuất lại tệp từ ứng dụng nguồn và thử lại.
Vấn đề lưu
PsdSaveException về độ dài chuỗi Pascal
Giá trị chuỗi — thường là tên lớp hoặc tài nguyên — vượt quá 255 byte, giới hạn tối đa mà trường chuỗi Pascal của PSD có thể mã hoá:
layer.Name = layer.Name.Length > 255 ? layer.Name[..255] : layer.Name;
image.Save("output.psd");Vấn đề chỉnh sửa
NotSupportedException khi đặt thuộc tính
Một số thuộc tính chỉ đọc trong bản xây dựng FOSS này. Trên PsdImage: ActiveLayer, ImageResources, GlobalLayerResources, HasTransparencyData. Trên Layer: ChannelInformation, LayerMaskData, LayerBlendingRangesData. Xem chúng như chỉ lấy — không gán giá trị cho chúng.
Độ trong suốt lớp trông không đúng sau khi đã thiết lập
Layer.Opacity là một byte trong khoảng 0-255, không phải là phần thập phân 0.0-1.0 hoặc phần trăm:
layer.Opacity = 200; // approximately 78% opaque, not 200%Việc loại bỏ lớp không có hiệu lực
PsdImage.Layers có một setter hoạt động ở mức bộ sưu tập, nhưng các phần tử mảng riêng lẻ không thể chỉ đơn giản bị xóa tại chỗ — hãy gán lại toàn bộ mảng đã lọc:
image.Layers = image.Layers.Where(l => l.Name != "Unwanted Layer").ToArray();Vấn đề cài đặt
Không tìm thấy gói
Xác nhận danh tính chính xác của gói:
git clone https://github.com/aspose-psd-foss/Aspose.PSD-FOSS-for-.NET.git
cd Aspose.PSD-FOSS-for-.NET
dotnet buildDanh sách kiểm tra chẩn đoán
Trước khi mở một yêu cầu hỗ trợ, hãy kiểm tra danh sách này:
- Xác nhận tệp thực sự là PSD/PSB — a
PsdLoadExceptionvề một phiên bản không được hỗ trợ thường có nghĩa là tệp không phải là tài liệu PSD/PSB thực sự. - Kiểm tra
NotSupportedException— bạn có thể đang đặt một trong 7 thuộc tính chỉ đọc được liệt kê ở trên thay vì đọc nó. - Verify
Opacitynằm trong khoảng 0-255, không phải 0.0-1.0 hoặc 0-100. - Giữ giá trị chuỗi dưới 255 byte trước khi lưu, để tránh
PsdSaveException. - Call
image.Savesau mỗi lần chỉnh sửa — các thay đổi đối với mộtLayerđối tượng không được lưu lại cho đến khi tài liệu được lưu.