1. Produits
  2.   Aspose.PSD
  3.   Aspose.PSD FOSS for .NET

Aspose.PSD FOSS pour .NET

Bibliothèque open source .NET pour charger, inspecter et enregistrer des fichiers PSD/PSB avec accès aux métadonnées des calques. Sous licence MIT, aucun Adobe Photoshop requis.

Bibliothèque .NET Open-Source pour les fichiers PSD/PSB

Aspose.PSD FOSS for .NET est une bibliothèque C# gratuite, sous licence MIT, pure pour le chargement, l’inspection, et l’enregistrement des fichiers Adobe Photoshop PSD et PSB sans nécessiter Adobe Photoshop ou tout runtime propriétaire. Elle expose un API léger et autonome centré sur 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.

Charger et inspecter les fichiers PSD/PSB

  • Image.Load(filePath) ou Image.Load(stream) ouvre un fichier et renvoie un Image, converti en PsdImage pour un accès spécifique aux PSD
  • PsdImage.Width, Height et Size indiquent les dimensions du canevas
  • PsdImage.ColorMode (ColorModes), BitsPerChannel et Compression (CompressionMethod) décrivent comment les données de pixels sont encodées
  • PsdImage.Version (PsdVersion) distingue le PSD standard de la variante PSB de grand document

Valider et cataloguer les fichiers de conception

  • Valider un lot de fichiers de conception avant de les transmettre à un processus en aval
  • Créer un catalogue d’actifs léger des dimensions et des modes couleur des PSD/PSB
  • Détecter les fichiers PSB (document volumineux) qui nécessitent une prise en charge différente de celle des PSD standard

Travailler avec les calques

  • PsdImage.Layers renvoie chaque Layer dans l’ordre du document ; PsdImage.ActiveLayer indique laquelle est active
  • Chaque Layer 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 approfondie
  • Layer.ChannelsCount indique le nombre de canaux d’image qu’un calque porte

Structure de la couche d’audit

  • Auditer la structure des calques d’un PSD sans ouvrir Photoshop
  • Générer un rapport des noms de calques, de la visibilité et des modes de fusion pour une révision de conception
  • Identifier les calques cachés ou à opacité zéro restants d’anciennes modifications

Modifier les métadonnées de base de la couche

  • Layer.Name, Layer.Left/Top/Right/Bottom et Layer.BlendModeKey peuvent être définis directement
  • PsdImage.Save(filePath) ou PsdImage.Save(stream) enregistre le document modifié sur le disque
  • Recharger un fichier enregistré avec Image.Load confirme que les modifications font un aller-retour correct
  • Les propriétés non listées ci-dessus (informations de canal, données de masque, plages de fusion, ressources d’image) déclenchent NotSupportedException si elles sont définies — cette version ne prend en charge que les modifications de métadonnées, pas la ré-authorisation complète

Modifications légères et scriptables

  • Renommer les calques programmétiquement dans le cadre d’un pipeline d’organisation de fichiers automatisé
  • Repositionner ou redimensionner la boîte englobante d’un calque sans outil de conception
  • Mettre à jour en lot les modes de fusion dans de nombreux fichiers pour assurer la cohérence

Inspecter les blocs de ressources et l’état du document

  • PsdImage.ImageResources et GlobalLayerResources exposent les collections ResourceBlock/LayerResource
  • PsdImage.GlobalLayerMaskInfo indique les informations de masque de calque à l’échelle du document
  • PsdImage.IsFlatten et HasTransparencyData indiquent les indicateurs au niveau du document
  • PsdLoadException et PsdSaveException exposent les erreurs de chargement/enregistrement avec des messages clairs

Diagnostiquer et inspecter

  • Diagnostiquer pourquoi un fichier PSD particulier échoue à se charger, avec une exception typée au lieu d’une erreur générique
  • Vérifier si un fichier a été enregistré sous forme aplatie avant tout traitement supplémentaire
  • Examiner les blocs de ressources intégrés pour les métadonnées au niveau du format

Charger un fichier PSD et inspecter ses calques

Chargez 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}");

Modifier les métadonnées du calque et enregistrer

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}");

Lire les informations du canal (lecture seule)

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

Foire aux questions

Quel est le modèle de licence ?

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.

Comment installer Aspose.PSD FOSS for .NET ?

Voir la section d’installation ci-dessus pour la commande d’installation actuelle.

Quels formats Aspose.PSD FOSS for .NET peut lire et écrire ?

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.

Quelle est la classe principale d’entrée ?

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.

Puis-je modifier les métadonnées du calque ?

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.

  

Ressources de support et d'apprentissage

 Français