PsdImage et
Layer, offrant aux développeurs .NET un accès programmatique à la structure d’un document PSD sans
dépendances natives à compiler. La bibliothèque lit les dimensions, le mode couleur, la profondeur de bits et la compression
d’un fichier PSD/PSB, et expose chaque calque via PsdImage.Layers : chaque Layer indique son nom,
ses limites, son opacité, sa visibilité et la clé du mode de fusion (BlendMode), ainsi que des informations de bas niveau
sur les canaux (ChannelInformation) et les données de masque (LayerMaskData). Un sous-ensemble de
métadonnées du calque — nom, limites (Left/Top/Right/Bottom), et mode de fusion — peut être
modifié en place et persisté sur le disque avec PsdImage.Save() ; tout le reste sur le
surface est en lecture seule par conception dans cette version FOSS. Aspose.PSD FOSS for .NET est sous licence MIT. Installez-le avec
dotnet add package Aspose.PSD.FOSS — la bibliothèque n’a aucune dépendance native tierce
dépendances, uniquement le .NET BCL. Pour la gamme de produits d’entreprise, voir Aspose.PSD — Enterprise Product Family.Image.Load(filePath) ou Image.Load(stream) ouvre un fichier et renvoie un Image, converti en PsdImage pour un accès spécifique aux PSDPsdImage.Width, Height et Size indiquent les dimensions du canevasPsdImage.ColorMode (ColorModes), BitsPerChannel et Compression (CompressionMethod) décrivent comment les données de pixels sont encodéesPsdImage.Version (PsdVersion) distingue le PSD standard de la variante PSB de grand documentPsdImage.Layers renvoie chaque Layer dans l’ordre du document ; PsdImage.ActiveLayer indique laquelle est activeLayer expose Name, Bounds, Opacity, IsVisible et BlendModeKey (BlendMode)Layer.ChannelInformation et Layer.LayerMaskData exposent les métadonnées de canal et de masque pour une inspection plus approfondieLayer.ChannelsCount indique le nombre de canaux d’image qu’un calque porteLayer.Name, Layer.Left/Top/Right/Bottom et Layer.BlendModeKey peuvent être définis directementPsdImage.Save(filePath) ou PsdImage.Save(stream) enregistre le document modifié sur le disqueImage.Load confirme que les modifications font un aller-retour correctNotSupportedException si elles sont définies — cette version ne prend en charge que les modifications de métadonnées, pas la ré-authorisation complètePsdImage.ImageResources et GlobalLayerResources exposent les collections ResourceBlock/LayerResourcePsdImage.GlobalLayerMaskInfo indique les informations de masque de calque à l’échelle du documentPsdImage.IsFlatten et HasTransparencyData indiquent les indicateurs au niveau du documentPsdLoadException et PsdSaveException exposent les erreurs de chargement/enregistrement avec des messages clairsChargez un fichier avec Image.Load et convertissez le résultat en PsdImage pour accéder aux membres spécifiques aux PSD.
using var image = (PsdImage)Image.Load("test.psd");
Console.WriteLine($"Width: {image.Width}, Channels: {image.ChannelsCount}, Layers: {image.Layers.Length}");
Layer layer = image.Layers[0];
Console.WriteLine($"Bounds: {layer.Bounds}, BlendMode: {layer.BlendModeKey}, Opacity: {layer.Opacity}, Visible: {layer.IsVisible}");
Le nom du calque, les limites et le mode de fusion peuvent être modifiés sur place et enregistrés à nouveau sur le disque.
using (var image = (PsdImage)Image.Load("test.psd"))
{
image.Layers[0].Name = "Renamed layer";
image.Layers[0].Left = 10;
image.Layers[0].Top = 20;
image.Layers[0].Right = 40;
image.Layers[0].Bottom = 60;
image.Layers[0].BlendModeKey = BlendMode.Multiply;
image.Save("edited.psd");
}
using var reloaded = (PsdImage)Image.Load("edited.psd");
Console.WriteLine($"Name: {reloaded.Layers[0].Name}, BlendMode: {reloaded.Layers[0].BlendModeKey}");
Les informations de canal peuvent être lues mais ne peuvent pas être réassignées — tenter de les définir lève NotSupportedException.
using var image = (PsdImage)Image.Load("test.psd");
Layer layer = image.Layers[0];
ChannelInformation[] channelInformation = layer.ChannelInformation;
Console.WriteLine($"Channel count: {layer.ChannelsCount}, First channel length: `NotSupportedException`");
// layer.ChannelInformation = channelInformation; // throws NotSupportedException
Aspose.PSD FOSS for .NET est sous licence MIT. Vous pouvez l’utiliser, le modifier et le redistribuer selon les termes de la licence MIT, y compris dans des produits commerciaux.
Voir la section d’installation ci-dessus pour la commande d’installation actuelle.
Il charge et enregistre les fichiers PSD et PSB (document volumineux Photoshop). Il ne rend pas et n’exporte pas les données de pixels vers d’autres formats raster tels que PNG ou JPEG.
PsdImage (une sous-classe de Image). Chargez un document avec PsdImage.Load, puis lisez sa collection Layers ainsi que les propriétés d’en-tête.
Oui — Layer expose un setter fonctionnel pour plusieurs propriétés, telles que la visibilité et le nom, et PsdImage.Layers lui-même possède un setter fonctionnel pour remplacer la collection. Quelques propriétés spécifiques (informations de canal, données de masque, plages de fusion et certaines ressources au niveau du document) sont en lecture seule dans cette version FOSS et lèvent NotSupportedException si elles sont définies.