Pemecahan Masalah Aspose.PSD FOSS for .NET

Pemecahan Masalah Aspose.PSD FOSS for .NET

Pemecahan Masalah Aspose.PSD FOSS untuk .NET

Halaman ini mencakup masalah paling umum yang ditemui saat memuat, memeriksa, dan menyimpan dokumen PSD/PSB dengan Aspose.PSD FOSS untuk .NET.


Masalah Memuat

PsdLoadException dengan pesan tentang versi yang tidak didukung

Bidang versi PSD yang dinyatakan dalam file bukanlah nilai PSD standar maupun nilai PSB dokumen besar. Pastikan file tersebut merupakan dokumen PSD/PSB yang asli dan tidak rusak sebelum memuat:

try
{
    using var image = PsdImage.Load("input.psd");
}
catch (PsdLoadException ex)
{
    Console.WriteLine($"Not a valid PSD/PSB file: {ex.Message}");
}

PsdLoadException tentang panjang bagian yang melebihi batas

Bidang panjang internal file tidak konsisten dengan ukuran sebenarnya — biasanya ini berarti file terpotong atau rusak, bukan karena menggunakan struktur yang tidak didukung namun valid. Ekspor ulang file dari aplikasi sumbernya dan coba lagi.


Masalah Penyimpanan

PsdSaveException tentang panjang string Pascal

Nilai string — paling umum nama lapisan atau sumber daya — melebihi 255 byte, maksimum yang dapat dikodekan oleh bidang string Pascal PSD:

layer.Name = layer.Name.Length > 255 ? layer.Name[..255] : layer.Name;
image.Save("output.psd");

Masalah Pengeditan

NotSupportedException saat mengatur properti

Beberapa properti bersifat read-only dalam build FOSS ini. Pada PsdImage: ActiveLayer, ImageResources, GlobalLayerResources, HasTransparencyData. Pada Layer: ChannelInformation, LayerMaskData, LayerBlendingRangesData. Anggap ini hanya get-only — jangan menetapkannya.

Opasitas lapisan tampak salah setelah mengaturnya

Layer.Opacity adalah byte dalam rentang 0-255, bukan pecahan 0.0-1.0 atau persentase:

layer.Opacity = 200; // approximately 78% opaque, not 200%

Penghapusan lapisan tidak berpengaruh

PsdImage.Layers memiliki setter yang berfungsi pada tingkat koleksi, tetapi elemen array individu tidak dapat dihapus secara langsung — tetapkan kembali seluruh array yang sudah difilter:

image.Layers = image.Layers.Where(l => l.Name != "Unwanted Layer").ToArray();

Masalah Instalasi

Paket tidak ditemukan

Konfirmasi identitas paket yang tepat:

git clone https://github.com/aspose-psd-foss/Aspose.PSD-FOSS-for-.NET.git
cd Aspose.PSD-FOSS-for-.NET
dotnet build

Checklist Diagnostik

Sebelum membuka tiket dukungan, jalankan checklist ini:

  1. Pastikan file tersebut benar-benar PSD/PSB — a PsdLoadException tentang versi yang tidak didukung biasanya berarti file tersebut bukan dokumen PSD/PSB yang sebenarnya.
  2. Periksa NotSupportedException — Anda mungkin sedang mengatur salah satu dari 7 properti hanya-baca yang tercantum di atas alih-alih membacanya.
  3. Verify Opacity adalah dalam rentang 0-255, bukan 0.0-1.0 atau 0-100.
  4. Jaga nilai string tetap di bawah 255 byte sebelum menyimpan, untuk menghindari PsdSaveException.
  5. Call image.Save setelah setiap penyuntingan — perubahan pada sebuah Layer instance tidak dipertahankan hingga dokumen disimpan.

Lihat Juga

 Bahasa Indonesia