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Αναλυμένα μπλοκ πόρων εικόνας (μόνο ανάγνωση)

Δείτε επίσης

 Ελληνικά