Inti API
API Inti
PsdImage adalah titik masuk untuk memuat, memeriksa, dan menyimpan dokumen PSD/PSB. Ia memperluas kelas dasar abstrak Image, yang mendeklarasikan Width, Height, Bounds, Load(), Save(), dan Dispose().
Memuat dan Menyimpan Dokumen
Image.Load() menerima jalur file atau Stream dan mengembalikan Image; ubah tipe hasil ke PsdImage untuk mengakses sisa permukaan dokumen. PsdImage.Save() menulis dokumen kembali ke jalur file atau aliran.
using var image = (PsdImage)Image.Load(inputPath);
// ... inspect or edit ...
image.Save(outputPath);Properti Header Dokumen
PsdImage mengekspos header yang telah diurai sebagai properti bertipe: Width, Height, BitsPerChannel, ColorMode, Version, Compression, Size, dan 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}");Sumber Daya Gambar
PsdImage.ImageResources mengembalikan array ResourceBlock[] yang telah diurai. Dalam build FOSS ini, ImageResources, GlobalLayerResources, ActiveLayer, dan HasTransparencyData dapat dibaca tetapi tidak dapat ditetapkan kembali — setter mereka melempar NotSupportedException.
foreach (ResourceBlock resource in image.ImageResources)
{
Console.WriteLine($"Resource {resource.ID}: {resource.Name} ({resource.DataSize} bytes)");
}Tips dan Praktik Terbaik
- Selalu lakukan cast pada hasil
Image.Load()kePsdImageuntuk mengakses anggota khusus PSD. - Bungkus objek yang layak
Dispose()dalam pernyataanusing;PsdImagemengimplementasikanIDisposable. - Perlakukan
ImageResources,GlobalLayerResources,ActiveLayer, danHasTransparencyDatasebagai read-only meskipun mereka menyediakan setter. - Periksa
image.Layers.Lengthsebelum mengindeks keimage.Layers— dokumen yang diratakan mungkin tidak memiliki lapisan.
Masalah Umum
| Masalah | Penyebab | Perbaikan |
|---|---|---|
NotSupportedException saat mengatur ImageResources | Properti ini bersifat read-only dalam build FOSS meskipun memiliki setter | Baca nilai; jangan mencoba menetapkannya kembali |
Array image.Layers kosong pada dokumen yang diratakan | IsFlatten adalah true dan dokumen tidak memiliki lapisan yang diparse | Periksa image.Layers.Length (atau image.IsFlatten) sebelum mengindeks ke image.Layers |
FAQ
Apakah memuat dokumen PSD mendekode data piksel?
Tidak. PsdImage.Load() mengurai header dokumen, metadata lapisan, dan sumber daya tanpa mendekode atau merender data piksel.
Apakah saya dapat mengonversi file PSD ke format gambar lain?
Tidak. Perpustakaan ini hanya memuat, memeriksa, dan menyimpan dokumen PSD/PSB — ia tidak merender data piksel atau mengonversi ke format gambar lain.
API Reference Ringkasan
| Kelas/Metode | Deskripsi |
|---|---|
Image.Load(string) / Image.Load(Stream) | Memuat dokumen PSD atau PSB |
PsdImage.Save(string) / PsdImage.Save(Stream) | Menyimpan dokumen |
PsdImage.Width / Height / BitsPerChannel / ColorMode / Version / Compression / Size / IsFlatten | Properti header dokumen |
PsdImage.ImageResources | Blok sumber daya gambar yang diparse (hanya-baca) |