PsdImage und
Layer dreht und .NET Entwicklern programmatischen Zugriff auf die Struktur eines PSD-Dokuments ohne
native Abhängigkeiten zum Kompilieren bietet. Die Bibliothek liest die Abmessungen, den Farbmodus, die Bit-Tiefe und die Komprimierung
smethode und stellt jede Ebene über PsdImage.Layers bereit: Jeder Layer gibt seinen Namen,
Begrenzungen, Deckkraft, Sichtbarkeit und den Blend-Modus-Schlüssel (BlendMode), sowie niedrigere
Kanalinformationen (ChannelInformation) und Maskendaten (LayerMaskData). Ein Teil der
Ebenen-Metadaten — Name, Begrenzungen (Left/Top/Right/Bottom) und Blend-Modus — kann
vor Ort geändert und mit PsdImage.Save() wieder auf die Festplatte geschrieben werden; alles andere auf der
Oberfläche ist per Design in diesem FOSS-Build schreibgeschützt. Aspose.PSD FOSS for .NET ist MIT-lizenziert. Installieren Sie es mit
dotnet add package Aspose.PSD.FOSS — die Bibliothek hat keinerlei native
Abhängigkeiten, nur das .NET BCL. Für die Enterprise-Produktfamilie siehe Aspose.PSD — Enterprise Product Family.Image.Load(filePath) oder Image.Load(stream) öffnet eine Datei und gibt ein Image zurück, das zu PsdImage gecastet wird, um PSD-spezifischen Zugriff zu erhaltenPsdImage.Width, Height und Size geben die Canvas-Abmessungen zurückPsdImage.ColorMode (ColorModes), BitsPerChannel und Compression (CompressionMethod) beschreiben, wie die Pixeldaten codiert sindPsdImage.Version (PsdVersion) unterscheidet das Standard-PSD von der großen Dokument-PSB-VariantePsdImage.Layers gibt jedes Layer in Dokumentreihenfolge zurück; PsdImage.ActiveLayer gibt an, welches aktiv istLayer stellt Name, Bounds, Opacity, IsVisible und BlendModeKey (BlendMode) bereitLayer.ChannelInformation und Layer.LayerMaskData stellen Kanal- und Masken-Metadaten für eine tiefere Untersuchung bereitLayer.ChannelsCount gibt an, wie viele Bildkanäle ein Layer trägtLayer.Name, Layer.Left/Top/Right/Bottom und Layer.BlendModeKey können direkt gesetzt werdenPsdImage.Save(filePath) oder PsdImage.Save(stream) speichert das geänderte Dokument zurück auf die FestplatteImage.Load bestätigt, dass die Änderungen korrekt rundum funktionierenNotSupportedException, wenn sie gesetzt werden – dieser Build unterstützt nur Metadaten-Änderungen, nicht die vollständige NeugestaltungPsdImage.ImageResources und GlobalLayerResources stellen ResourceBlock/LayerResource-Sammlungen bereitPsdImage.GlobalLayerMaskInfo liefert dokumentweite Layer-Masken-InformationenPsdImage.IsFlatten und HasTransparencyData liefern dokumentbezogene FlagsPsdLoadException und PsdSaveException zeigen Lade-/Speicherfehler mit klaren Meldungen anLaden Sie eine Datei mit Image.Load und casten Sie das Ergebnis zu PsdImage für PSD-spezifische Member.
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}");
Der Ebenenname, die Begrenzungen und der Mischmodus können direkt geändert und wieder auf die Festplatte gespeichert werden.
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}");
Kanalinformationen können gelesen, aber nicht neu zugewiesen werden — ein Versuch, sie zu setzen, löst NotSupportedException aus.
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 ist unter der MIT license lizenziert. Sie können es verwenden, modifizieren und weiterverbreiten unter den Bedingungen der MIT license, auch in kommerziellen Produkten.
Siehe den oben genannten Installationsabschnitt für den aktuellen Installationsbefehl.
Es lädt und speichert PSD- und PSB-Dateien (Photoshop large document). Es rendert oder exportiert keine Pixeldaten in andere Rasterformate wie PNG oder JPEG.
PsdImage (eine Unterklasse von Image). Laden Sie ein Dokument mit PsdImage.Load, dann lesen Sie die Layers-Sammlung und die Header-Eigenschaften.
Ja — Layer stellt einen funktionierenden Setter für mehrere Eigenschaften bereit, wie Sichtbarkeit und Name, und PsdImage.Layers selbst hat einen funktionierenden Setter zum Ersetzen der Sammlung. Einige spezifische Eigenschaften (Kanalinformationen, Maskendaten, Mischbereiche und einige dokumentenbezogene Ressourcen) sind in diesem FOSS-Build schreibgeschützt und werfen NotSupportedException, wenn sie gesetzt werden.