Core API
Πυρήνας API
PsdImage είναι το σημείο εισόδου για τη φόρτωση, την επιθεώρηση και την αποθήκευση εγγράφων PSD/PSB. Επεκτείνει την αφηρημένη βασική κλάση Image, η οποία δηλώνει Width, Height, Bounds, Load(), Save() και Dispose().
Φόρτωση και Αποθήκευση Εγγράφων
Image.Load() δέχεται μια διαδρομή αρχείου ή ένα Stream και επιστρέφει ένα Image; μετατρέψτε το αποτέλεσμα σε PsdImage για να έχετε πρόσβαση στην υπόλοιπη επιφάνεια του εγγράφου. PsdImage.Save() γράφει το έγγραφο ξανά σε διαδρομή αρχείου ή ροή.
using var image = (PsdImage)Image.Load(inputPath);
// ... inspect or edit ...
image.Save(outputPath);Ιδιότητες Κεφαλίδας Εγγράφου
PsdImage εκθέτει την αναλυμένη κεφαλίδα ως ιδιότητες τύπου: Width, Height, BitsPerChannel, ColorMode, Version, Compression, Size και IsFlatten.
Console.WriteLine($"Width: {image.Width}, Height: {image.Height}");
Console.WriteLine($"ColorMode: {image.ColorMode}, Version: {image.Version}");
Console.WriteLine($"Compression: {image.Compression}, IsFlatten: {image.IsFlatten}");Πόροι Εικόνας
PsdImage.ImageResources επιστρέφει τον αναλυμένο πίνακα ResourceBlock[]. Σε αυτήν την έκδοση FOSS, τα ImageResources, GlobalLayerResources, ActiveLayer και HasTransparencyData μπορούν να διαβαστούν αλλά όχι να επανατοποθετηθούν — οι setters τους ρίχνουν NotSupportedException.
foreach (ResourceBlock resource in image.ImageResources)
{
Console.WriteLine($"Resource {resource.ID}: {resource.Name} ({resource.DataSize} bytes)");
}Συμβουλές και Καλές Πρακτικές
- Πάντα μετατρέψτε το αποτέλεσμα του
Image.Load()σεPsdImageγια να έχετε πρόσβαση σε μέλη ειδικά για PSD. - Τυλίξτε αντικείμενα άξια
Dispose()σε μια δήλωσηusing;PsdImageυλοποιεί τοIDisposable. - Αντιμετωπίζετε τα
ImageResources,GlobalLayerResources,ActiveLayerκαιHasTransparencyDataως μόνο για ανάγνωση, ακόμη και αν εκθέτουν setter. - Ελέγξτε το
image.Layers.Lengthπριν κάνετε δείκτη στοimage.Layers— ένα επίπεδο έγγραφο μπορεί να έχει μηδέν στρώματα.
Κοινά Προβλήματα
| Πρόβλημα | Αιτία | Διόρθωση |
|---|---|---|
NotSupportedException όταν ορίζεται ImageResources | Αυτή η ιδιότητα είναι μόνο για ανάγνωση στην έκδοση FOSS παρά το ότι διαθέτει setter | Διαβάστε την τιμή· μην προσπαθήσετε να την εκχωρήσετε ξανά |
Κενό image.Layers array σε επίπεδο έγγραφο | IsFlatten είναι true και το έγγραφο δεν έχει αναλυμένα στρώματα | Ελέγξτε το image.Layers.Length (ή image.IsFlatten) πριν την ευρετηρίαση στο image.Layers |
FAQ
Η φόρτωση εγγράφου PSD αποκωδικοποιεί τα δεδομένα pixel;
Όχι. PsdImage.Load() αναλύει την κεφαλίδα του εγγράφου, τα μεταδεδομένα των στρωμάτων και τους πόρους χωρίς να αποκωδικοποιεί ή να αποδίδει τα δεδομένα pixel.
Μπορώ να μετατρέψω ένα αρχείο PSD σε άλλη μορφή εικόνας;
Όχι. Αυτή η βιβλιοθήκη φορτώνει, εξετάζει και αποθηκεύει μόνο έγγραφα PSD/PSB — δεν αποδίδει δεδομένα pixel ούτε μετατρέπει σε άλλες μορφές εικόνας.
API Reference Σύνοψη
| Κλάση/Μέθοδος | Περιγραφή |
|---|---|
Image.Load(string) / Image.Load(Stream) | Φορτώνει ένα έγγραφο PSD ή PSB |
PsdImage.Save(string) / PsdImage.Save(Stream) | Αποθηκεύει το έγγραφο |
PsdImage.Width / Height / BitsPerChannel / ColorMode / Version / Compression / Size / IsFlatten | Ιδιότητες κεφαλίδας εγγράφου |
PsdImage.ImageResources | Αναλυμένα μπλοκ πόρων εικόνας (μόνο ανάγνωση) |