PsdImage και
Layer, παρέχοντας στους .NET προγραμματιστές προγραμματιστική πρόσβαση στη δομή ενός εγγράφου PSD χωρίς
εγγενείς εξαρτήσεις για μεταγλώττιση. Η βιβλιοθήκη διαβάζει τις διαστάσεις, τη λειτουργία χρώματος, το βάθος bit και τη μέθοδο
συμπίεσης ενός αρχείου PSD/PSB, και εκθέτει κάθε στρώμα μέσω PsdImage.Layers: κάθε Layer αναφέρει το όνομά του,
τα όρια, την αδιαφάνεια, την ορατότητα και το κλειδί λειτουργίας ανάμειξης (BlendMode), μαζί με πληροφορίες
χαμηλότερου επιπέδου για τα κανάλια (ChannelInformation) και δεδομένα μάσκας (LayerMaskData). Ένα υποσύνολο των
μεταδεδομένων στρώματος — όνομα, όρια (Left/Top/Right/Bottom), και λειτουργία ανάμειξης — μπορεί να
τροποποιηθεί επί τόπου και να αποθηκευτεί ξανά στο δίσκο με PsdImage.Save()· όλα τα υπόλοιπα
στην επιφάνεια είναι μόνο για ανάγνωση κατά το σχεδιασμό σε αυτήν την έκδοση FOSS. Aspose.PSD FOSS for .NET είναι αδειοδοτημένο με MIT. Εγκαταστήστε το με
dotnet add package Aspose.PSD.FOSS — η βιβλιοθήκη δεν έχει εξαρτήσεις τρίτων εγγενών,
μόνο το .NET BCL. Για την οικογένεια προϊόντων επιχειρήσεων, δείτε Aspose.PSD — Enterprise Product Family.Image.Load(filePath) ή Image.Load(stream) ανοίγει ένα αρχείο και επιστρέφει ένα Image, μετατρεπόμενο σε PsdImage για πρόσβαση ειδική για PSDPsdImage.Width, Height και Size αναφέρουν τις διαστάσεις του καμβάPsdImage.ColorMode (ColorModes), BitsPerChannel και Compression (CompressionMethod) περιγράφουν πώς κωδικοποιούνται τα δεδομένα των εικονοστοιχείωνPsdImage.Version (PsdVersion) διακρίνει το τυπικό PSD από την παραλλαγή μεγάλου εγγράφου PSBPsdImage.Layers επιστρέφει κάθε Layer με τη σειρά του εγγράφου· PsdImage.ActiveLayer αναφέρει ποιο είναι ενεργόLayer εκθέτει τα Name, Bounds, Opacity, IsVisible και το BlendModeKey (BlendMode)Layer.ChannelInformation και Layer.LayerMaskData εκθέτουν μεταδεδομένα καναλιού και μάσκας για πιο βαθιά επιθεώρησηLayer.ChannelsCount αναφέρει πόσα κανάλια εικόνας φέρει ένα layerLayer.Name, Layer.Left/Top/Right/Bottom και Layer.BlendModeKey μπορούν να οριστούν απευθείαςPsdImage.Save(filePath) ή PsdImage.Save(stream) αποθηκεύει το τροποποιημένο έγγραφο πίσω στο δίσκοImage.Load επιβεβαιώνει ότι οι επεμβάσεις ολοκληρώνονται σωστάNotSupportedException εάν οριστούν — αυτή η έκδοση υποστηρίζει μόνο επεξεργασίες μεταδεδομένων, όχι πλήρη επανασυγγραφήPsdImage.ImageResources και GlobalLayerResources εκθέτουν τις συλλογές ResourceBlock/LayerResourcePsdImage.GlobalLayerMaskInfo αναφέρει πληροφορίες μάσκας στρώματος σε επίπεδο εγγράφουPsdImage.IsFlatten και HasTransparencyData αναφέρουν σημαίες σε επίπεδο εγγράφουPsdLoadException και PsdSaveException εμφανίζουν σφάλματα φόρτωσης/αποθήκευσης με σαφή μηνύματαΦορτώστε ένα αρχείο με Image.Load και μετατρέψτε το αποτέλεσμα σε PsdImage για μέλη που αφορούν ειδικά το 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}");
Το όνομα του στρώματος, τα όρια και η λειτουργία ανάμειξης μπορούν να αλλάξουν επί τόπου και να αποθηκευτούν ξανά στο δίσκο.
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}");
Οι πληροφορίες καναλιού μπορούν να διαβαστούν αλλά δεν μπορούν να επανατοποθετηθούν — η προσπάθεια ορισμού τους προκαλεί 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 είναι αδειοδοτημένο υπό την άδεια MIT. Μπορείτε να το χρησιμοποιήσετε, να το τροποποιήσετε και να το αναδιανείμετε σύμφωνα με τους όρους της άδειας MIT, συμπεριλαμβανομένων των εμπορικών προϊόντων.
Δείτε την ενότητα εγκατάστασης παραπάνω για την τρέχουσα εντολή εγκατάστασης.
Φορτώνει και αποθηκεύει αρχεία PSD και PSB (Photoshop large document). Δεν αποδίδει ή εξάγει δεδομένα εικονοστοιχείων σε άλλες ραστερ μορφές όπως PNG ή JPEG.
PsdImage (μια υποκλάση του Image). Φορτώστε ένα έγγραφο με PsdImage.Load, στη συνέχεια διαβάστε τη συλλογή Layers και τις ιδιότητες κεφαλίδας.
Ναι — Layer εκθέτει έναν λειτουργικό setter για αρκετές ιδιότητες, όπως την ορατότητα και το όνομα, και το ίδιο το PsdImage.Layers έχει έναν λειτουργικό setter για την αντικατάσταση της συλλογής. Μερικές συγκεκριμένες ιδιότητες (πληροφορίες καναλιού, δεδομένα μάσκας, περιοχές ανάμειξης και ορισμένοι πόροι επιπέδου-εγγράφου) είναι μόνο για ανάγνωση σε αυτή τη FOSS έκδοση και πετούν NotSupportedException αν οριστούν.