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

Aspose.PSD FOSS für .NET

Open-Source .NET-Bibliothek zum Laden, Untersuchen und Speichern von PSD/PSB-Dateien mit Zugriff auf Ebenen-Metadaten. MIT-lizenziert, kein Adobe Photoshop erforderlich.

Open-Source .NET Bibliothek für PSD/PSB-Dateien

Aspose.PSD FOSS for .NET ist eine kostenlose, MIT-lizenzierte, reine C# Bibliothek zum Laden, Untersuchen, und Speichern von Adobe Photoshop PSD- und PSB-Dateien, ohne dass Adobe Photoshop oder irgendeine proprietäre Laufzeit erforderlich ist. Sie stellt ein leichtgewichtiges, eigenständiges API bereit, das sich um 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.

Laden und Untersuchen von PSD/PSB-Dateien

  • 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 erhalten
  • PsdImage.Width, Height und Size geben die Canvas-Abmessungen zurück
  • PsdImage.ColorMode (ColorModes), BitsPerChannel und Compression (CompressionMethod) beschreiben, wie die Pixeldaten codiert sind
  • PsdImage.Version (PsdVersion) unterscheidet das Standard-PSD von der großen Dokument-PSB-Variante

Validieren und Katalogisieren von Designdateien

  • Validieren Sie einen Stapel von Design-Dateien, bevor Sie sie an einen nachgelagerten Prozess übergeben
  • Erstellen Sie einen leichtgewichtigen Asset-Katalog von PSD/PSB-Dimensionen und Farbmodi
  • Erkennen Sie PSB (großes Dokument)-Dateien, die eine andere Handhabung als Standard-PSD erfordern

Arbeiten mit Ebenen

  • PsdImage.Layers gibt jedes Layer in Dokumentreihenfolge zurück; PsdImage.ActiveLayer gibt an, welches aktiv ist
  • Jedes Layer stellt Name, Bounds, Opacity, IsVisible und BlendModeKey (BlendMode) bereit
  • Layer.ChannelInformation und Layer.LayerMaskData stellen Kanal- und Masken-Metadaten für eine tiefere Untersuchung bereit
  • Layer.ChannelsCount gibt an, wie viele Bildkanäle ein Layer trägt

Audit-Schichtstruktur

  • Auditieren Sie die Ebenenstruktur einer PSD, ohne Photoshop zu öffnen
  • Erstellen Sie einen Bericht über Ebenennamen, Sichtbarkeit und Mischmodi für eine Designüberprüfung
  • Identifizieren Sie versteckte oder vollständig transparente Ebenen, die von früheren Bearbeitungen übrig geblieben sind

Grundlegende Layer-Metadaten bearbeiten

  • Layer.Name, Layer.Left/Top/Right/Bottom und Layer.BlendModeKey können direkt gesetzt werden
  • PsdImage.Save(filePath) oder PsdImage.Save(stream) speichert das geänderte Dokument zurück auf die Festplatte
  • Das erneute Laden einer gespeicherten Datei mit Image.Load bestätigt, dass die Änderungen korrekt rundum funktionieren
  • Eigenschaften, die oben nicht aufgeführt sind (Kanalinformationen, Maskendaten, Mischbereiche, Bildressourcen), werfen eine NotSupportedException, wenn sie gesetzt werden – dieser Build unterstützt nur Metadaten-Änderungen, nicht die vollständige Neugestaltung

Leichtgewichtige, skriptbare Bearbeitungen

  • Ebenen programmgesteuert umbenennen als Teil einer automatisierten Dateiorganisations-Pipeline
  • Die Begrenzungsbox einer Ebene neu positionieren oder skalieren ohne ein Design-Tool
  • Blendmodi stapelweise aktualisieren über viele Dateien hinweg für Konsistenz

Ressourcenblöcke und Dokumentzustand untersuchen

  • PsdImage.ImageResources und GlobalLayerResources stellen ResourceBlock/LayerResource-Sammlungen bereit
  • PsdImage.GlobalLayerMaskInfo liefert dokumentweite Layer-Masken-Informationen
  • PsdImage.IsFlatten und HasTransparencyData liefern dokumentbezogene Flags
  • PsdLoadException und PsdSaveException zeigen Lade-/Speicherfehler mit klaren Meldungen an

Diagnose und Inspektion

  • Diagnostizieren, warum eine bestimmte PSD-Datei nicht geladen wird, mit einer typisierten Ausnahme anstelle eines generischen Fehlers
  • Prüfen, ob eine Datei in abgeflachter Form gespeichert wurde, bevor sie weiter verarbeitet wird
  • Eingebettete Ressourcenblöcke auf formatbezogene Metadaten untersuchen

Laden Sie eine PSD-Datei und prüfen Sie deren Ebenen

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

Layer-Metadaten bearbeiten und speichern

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 lesen (Nur-Lesezugriff)

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

Häufig gestellte Fragen

Wie lautet das Lizenzmodell?

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.

Wie installiere ich Aspose.PSD FOSS for .NET?

Siehe den oben genannten Installationsabschnitt für den aktuellen Installationsbefehl.

Welche Formate kann Aspose.PSD FOSS for .NET lesen und schreiben?

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.

Was ist die Haupt-Einstiegspunktklasse?

PsdImage (eine Unterklasse von Image). Laden Sie ein Dokument mit PsdImage.Load, dann lesen Sie die Layers-Sammlung und die Header-Eigenschaften.

Kann ich Layer-Metadaten ändern?

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.

  

Support und Lernressourcen

 Deutsch