Noyau API
API principale
PsdImage est le point d’entrée pour charger, inspecter et enregistrer les documents PSD/PSB. Il étend la classe de base abstraite Image, qui déclare Width, Height, Bounds, Load(), Save() et Dispose().
Chargement et enregistrement des documents
Image.Load() accepte un chemin de fichier ou un Stream et renvoie un Image; convertissez le résultat en PsdImage pour accéder au reste de la surface du document. PsdImage.Save() écrit le document de nouveau vers un chemin de fichier ou un flux.
using var image = (PsdImage)Image.Load(inputPath);
// ... inspect or edit ...
image.Save(outputPath);Propriétés d’en-tête du document
PsdImage expose l’en-tête analysé sous forme de propriétés typées: Width, Height, BitsPerChannel, ColorMode, Version, Compression, Size et 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}");Ressources d’images
PsdImage.ImageResources renvoie le tableau ResourceBlock[] analysé. Dans cette version FOSS, ImageResources, GlobalLayerResources, ActiveLayer et HasTransparencyData peuvent être lus mais pas réaffectés— leurs mutateurs lèvent NotSupportedException.
foreach (ResourceBlock resource in image.ImageResources)
{
Console.WriteLine($"Resource {resource.ID}: {resource.Name} ({resource.DataSize} bytes)");
}Conseils et bonnes pratiques
- Toujours caster le résultat de
Image.Load()enPsdImagepour accéder aux membres spécifiques à PSD. - Enveloppez les objets dignes de
Dispose()dans une instructionusing;PsdImageimplémenteIDisposable. - Considérez
ImageResources,GlobalLayerResources,ActiveLayeretHasTransparencyDatacomme en lecture seule même s’ils exposent un mutateur. - Vérifiez
image.Layers.Lengthavant d’indexerimage.Layers— un document aplati peut ne contenir aucune couche.
Problèmes courants
| Problème | Cause | Correction |
|---|---|---|
NotSupportedException lors de la définition de ImageResources | Cette propriété est en lecture seule dans la version FOSS malgré la présence d’un setter | Lisez la valeur ; n’essayez pas de la réassigner |
Tableau image.Layers vide sur un document aplati | IsFlatten est true et le document n’a aucune couche analysée | Vérifiez image.Layers.Length (ou image.IsFlatten) avant d’indexer dans image.Layers |
FAQ
Le chargement d’un document PSD décode-t-il les données de pixels?
Non. PsdImage.Load() analyse l’en-tête du document, les métadonnées des calques et les ressources sans décoder ni rendre les données pixel.
Puis-je convertir un fichier PSD en un autre format d’image?
Non. Cette bibliothèque charge, inspecte et enregistre uniquement les documents PSD/PSB — elle ne rend pas les données pixel et ne convertit pas vers d’autres formats d’image.
API Reference Résumé
| Classe/Méthode | Description |
|---|---|
Image.Load(string) / Image.Load(Stream) | Charge un document PSD ou PSB |
PsdImage.Save(string) / PsdImage.Save(Stream) | Enregistre le document |
PsdImage.Width / Height / BitsPerChannel / ColorMode / Version / Compression / Size / IsFlatten | Propriétés d’en-tête du document |
PsdImage.ImageResources | Blocs de ressources d’image analysés (lecture seule) |