Πυρήνας API
Πυρήνας API
PsdImage είναι το σημείο εισόδου για τη φόρτωση, την επιθεώρηση και την αποθήκευση των εγγράφων PSD/PSB. Επεκτείνει την αφηρημένη βάση κλάση Image, η οποία δηλώνει μόνο το load() — το υπόλοιπο της επιφάνειας του εγγράφου (width, height, save(), υποστήριξη διαχειριστή περιβάλλοντος) ορίζεται στο ίδιο το PsdImage, όχι κληρονομημένο.
Φόρτωση και Αποθήκευση Εγγράφων
Image.load() δέχεται ένα μονοπάτι αρχείου ή μια ροή και επιστρέφει ένα Image; για είσοδο PSD/PSB αυτό είναι πάντα ένα PsdImage, έτσι η επιφάνεια του εγγράφου είναι άμεσα διαθέσιμη χωρίς ρητή μετατροπή. PsdImage υποστηρίζει επίσης τη δήλωση with για αυτόματη εκκαθάριση, και PsdImage.save() γράφει το έγγραφο ξανά σε μονοπάτι αρχείου ή ροή.
from aspose_psd_foss.psdimage import PsdImage
with PsdImage.load(input_path) as image:
# ... inspect or edit ...
image.save(output_path)Ιδιότητες Κεφαλίδας Εγγράφου
PsdImage εκθέτει την αναλυμένη κεφαλίδα ως ιδιότητες με τύπους: width, height, bits_per_channel, color_mode, version, compression, size και is_flatten.
print(f"Width: {image.width}, Height: {image.height}")
print(f"ColorMode: {image.color_mode}, Version: {image.version}")
print(f"Compression: {image.compression}, IsFlatten: {image.is_flatten}")Πόροι Εικόνας
PsdImage.image_resources επιστρέφει τη διασυνταγμένη λίστα των αντικειμένων ResourceBlock. Σε αυτήν την έκδοση FOSS, τα image_resources, global_layer_resources, active_layer και has_transparency_data μπορούν να διαβαστούν αλλά δεν μπορούν να επαναπροσαρμοστούν — οι setters τους προκαλούν NotSupportedException.
for resource in image.image_resources:
print(f"Resource {resource.id}: {resource.name} ({resource.data_size} bytes)")Συμβουλές και Καλές Πρακτικές
Image.load()επιστρέφει ήδη έναPsdImageγια είσοδο PSD/PSB — δεν χρειάζεται μετατροπή, σε αντίθεση με ορισμένες άλλες γλωσσικές εκδόσεις αυτής της βιβλιοθήκης.- Χρησιμοποιήστε τη δήλωση
with; τοPsdImageυποστηρίζει το πρωτόκολλο διαχειριστή περιβάλλοντος για καθαρισμό. - Αντιμετωπίστε τα
image_resources,global_layer_resources,active_layerκαιhas_transparency_dataως μόνο για ανάγνωση, ακόμη και αν εκθέτουν έναν setter. - Ελέγξτε το
image.layer_countπριν κάνετε πρόσβαση στοimage.layers— ένα επίπεδο (flattened) έγγραφο μπορεί να έχει μηδενικά στρώματα.
Συνηθισμένα Προβλήματα
| Πρόβλημα | Αιτία | Διόρθωση |
|---|---|---|
NotSupportedException κατά τη ρύθμιση image_resources | Αυτή η ιδιότητα είναι μόνο για ανάγνωση στην έκδοση FOSS παρά το ότι διαθέτει setter | Διαβάστε την τιμή· μην προσπαθήσετε να την εκχωρήσετε ξανά |
Κενή λίστα image.layers σε εξομαλυνμένο έγγραφο | is_flatten είναι True και το έγγραφο δεν έχει αναλυμένα στρώματα | Ελέγξτε το image.layer_count (ή το image.is_flatten) πριν την ευρετηρίαση στο image.layers |
FAQ
Η φόρτωση ενός εγγράφου PSD αποκωδικοποιεί τα δεδομένα εικονοστοιχείων;
Όχι. PsdImage.load() αναλύει την κεφαλίδα του εγγράφου, τα μεταδεδομένα των στρωμάτων και τους πόρους χωρίς να αποκωδικοποιεί ή να αποδίδει τα δεδομένα εικονοστοιχείων.
Μπορώ να μετατρέψω ένα αρχείο PSD σε άλλη μορφή εικόνας;
Όχι. Αυτή η βιβλιοθήκη φορτώνει, ελέγχει και αποθηκεύει μόνο έγγραφα PSD/PSB — δεν αποδίδει δεδομένα εικονοστοιχείων ούτε μετατρέπει σε άλλες μορφές εικόνας.
API Reference Περίληψη
| Κλάση/Μέθοδος | Περιγραφή |
|---|---|
Image.load(path) / Image.load(stream) | Φορτώνει ένα έγγραφο PSD ή PSB |
PsdImage.save(path) / PsdImage.save(stream) | Αποθηκεύει το έγγραφο |
PsdImage.width / height / bits_per_channel / color_mode / version / compression / size / is_flatten | Ιδιότητες κεφαλίδας εγγράφου |
PsdImage.image_resources | Αναλυμένα μπλοκ πόρων εικόνας (μόνο για ανάγνωση) |