Jádro API
Základní API
PsdImage je vstupní bod pro načítání, inspekci a ukládání dokumentů PSD/PSB. Rozšiřuje abstraktní Image základní třídu, která deklaruje Width, Height, Bounds, Load(), Save() a Dispose().
Načítání a ukládání dokumentů
Image.Load() přijímá cestu k souboru nebo Stream a vrací Image; přetypujte výsledek na PsdImage, abyste získali přístup k ostatní části dokumentu. PsdImage.Save() zapíše dokument zpět do cesty k souboru nebo streamu.
using var image = (PsdImage)Image.Load(inputPath);
// ... inspect or edit ...
image.Save(outputPath);Vlastnosti hlavičky dokumentu
PsdImage zpřístupňuje analyzovanou hlavičku jako typované vlastnosti: Width, Height, BitsPerChannel, ColorMode, Version, Compression, Size a 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}");Obrázkové zdroje
PsdImage.ImageResources vrací analyzované pole ResourceBlock[]. V tomto FOSS sestavení lze ImageResources, GlobalLayerResources, ActiveLayer a HasTransparencyData číst, ale nelze jim přiřadit novou hodnotu — jejich settery vyhazují NotSupportedException.
foreach (ResourceBlock resource in image.ImageResources)
{
Console.WriteLine($"Resource {resource.ID}: {resource.Name} ({resource.DataSize} bytes)");
}Tipy a osvědčené postupy
- Vždy přetypujte výsledek
Image.Load()naPsdImage, abyste získali přístup k členům specifickým pro PSD. - Zabalte objekty vhodné pro
Dispose()do výrazuusing;PsdImageimplementujeIDisposable. - Považujte
ImageResources,GlobalLayerResources,ActiveLayeraHasTransparencyDataza jen pro čtení, i když mají nastavitelný setter. - Zkontrolujte
image.Layers.Lengthpřed indexováním doimage.Layers— zploštělý dokument může mít nulové vrstvy.
Časté problémy
| Problém | Příčina | Oprava |
|---|---|---|
NotSupportedException při nastavování ImageResources | Tato vlastnost je ve FOSS buildu jen pro čtení, i když má setter | Přečtěte hodnotu; nesnažte se ji znovu přiřadit |
Prázdné pole image.Layers v zploštělém dokumentu | IsFlatten je true a dokument nemá žádné parsované vrstvy | Zkontrolujte image.Layers.Length (nebo image.IsFlatten) před indexováním do image.Layers |
FAQ
Načítá načtení PSD dokumentu dekódování pixelových dat?
Ne. PsdImage.Load() analyzuje hlavičku dokumentu, metadata vrstev a zdroje, aniž by dekódovalo nebo vykreslovalo pixelová data.
Mohu převést soubor PSD do jiného formátu obrázku?
Ne. Tato knihovna načítá, kontroluje a ukládá pouze dokumenty PSD/PSB — neprovádí vykreslování pixelových dat ani konverzi do jiných formátů obrázků.
API Reference Shrnutí
| Třída/metoda | Popis: |
|---|---|
Image.Load(string) / Image.Load(Stream) | Načte dokument PSD nebo PSB |
PsdImage.Save(string) / PsdImage.Save(Stream) | Uloží dokument |
PsdImage.Width / Height / BitsPerChannel / ColorMode / Version / Compression / Size / IsFlatten | Vlastnosti hlavičky dokumentu |
PsdImage.ImageResources | Analyzované bloky zdrojů obrázku (pouze ke čtení) |