Εισαγωγή
Aspose.PSD FOSS για Python είναι μια νέα ανοιχτού κώδικα βιβλιοθήκη για εργασία με αρχεία PSD και PSB (Photoshop large document) από κώδικα Python. Κυκλοφορεί υπό την άδεια MIT, δεν έχει εξαρτήσεις τρίτων εγγενών βιβλιοθηκών, και απαιτεί μόνο τη στάνταρ βιβλιοθήκη Python κατά το χρόνο εκτέλεσης. Το πακέτο εισάγεται ως aspose_psd_foss.
Η βιβλιοθήκη οργανώνεται γύρω από την κλάση PsdImage, η οποία επεκτείνει την αφηρημένη βασική κλάση Image, καθώς και την κλάση Layer. Τα Image.load() / PsdImage.load() φορτώνουν ένα έγγραφο από διαδρομή αρχείου ή ροή, εκθέτοντας πληροφορίες κεφαλίδας (width, height, color_mode, version, compression) και τη συλλογή layers που έχει αναλυθεί· το PsdImage.save() γράφει το έγγραφο πίσω σε αρχείο ή ροή. Και οι δύο κλάσεις υποστηρίζουν τη δήλωση with για αυτόματο καθαρισμό. Κάθε Layer εκθέτει τα δικά του μεταδεδομένα — name, bounds, is_visible, opacity, clipping, blend_mode_key, και πληροφορίες καναλιού/μάσκας — και ένα υποσύνολο αυτών των ιδιοτήτων μπορεί να αλλάξει επί τόπου και να αποθηκευτεί ξανά στο αρχείο.
Αυτή η έκδοση απευθύνεται σε προγραμματιστές που χρειάζονται να επιθεωρήσουν ή να κάνουν περιορισμένες επεμβάσεις μεταδεδομένων σε αρχεία PSD/PSB μέσα σε μια βάση κώδικα Python χωρίς εμπορική άδεια — εργαλεία αλυσίδας ενεργητικού που αναφέρουν τη δομή των επιπέδων, σενάρια κατασκευής που μετονομάζουν ή εναλλάσσουν την ορατότητα των επιπέδων πριν την παράδοση, ή δοκιμαστικά fixtures που χρειάζονται να διαβάσουν την κεφαλίδα PSD και τα δεδομένα επιπέδων χωρίς πλήρη μηχανή απόδοσης. Η βιβλιοθήκη δεν αποδίδει δεδομένα pixel ούτε μετατρέπει το PSD/PSB σε άλλες μορφές εικόνας — είναι ένας αναγνώστης/συγγραφέας επικεντρωμένος στα μεταδεδομένα για τη μορφή δοχείου PSD/PSB.
Τι περιλαμβάνεται
Επιθεώρηση εγγράφου
PsdImage.load() αναλύει την κεφαλίδα ενός αρχείου PSD ή PSB σε τύπους ιδιοτήτων — width, height, bits_per_channel, color_mode, version, compression, size και is_flatten — χωρίς αποκωδικοποίηση δεδομένων pixel.
from aspose_psd_foss.psdimage import PsdImage
with PsdImage.load("input.psd") as image:
print(f"Width: {image.width}, Height: {image.height}")
print(f"ColorMode: {image.color_mode}, Version: {image.version}")
print(f"Layers: {image.layer_count}, Compression: {image.compression}")
Μεταδεδομένα Στρώματος
Κάθε καταχώρηση στο PsdImage.layers είναι ένα Layer που αποκαλύπτει τα δικά του όρια, ορατότητα, διαφάνεια, αποκοπή και μεταδεδομένα blend-mode.
from aspose_psd_foss.psdimage import PsdImage
with PsdImage.load("input.psd") as image:
for layer in image.layers:
print(f"{layer.name}: {layer.bounds}, Visible={layer.is_visible}, Opacity={layer.opacity}")
Υποστηριζόμενες Επεξεργασίες Μεταδεδομένων
Ένα υποσύνολο των ιδιοτήτων του στρώματος μπορεί να τροποποιηθεί επι τόπου και να αποθηκευτεί ξανά με PsdImage.save(): όνομα, ορατότητα, διαφάνεια, αποκοπή, κλειδί blend mode και τις τέσσερις άκρες των ορίων.
from aspose_psd_foss.psdimage import PsdImage
from aspose_psd_foss.layers.blendmode import BlendMode
with PsdImage.load("input.psd") as image:
layer = image.layers[0]
layer.name = f"{layer.name} (edited)"
layer.is_visible = not layer.is_visible
layer.opacity = 128
layer.blend_mode_key = BlendMode.MULTIPLY
image.save("output.psd")
Γρήγορη Εισαγωγή
Εγκαταστήστε το πακέτο, στη συνέχεια φορτώστε ένα αρχείο PSD ή PSB, εξετάστε τα στρώματά του και αποθηκεύστε το ξανά:
git clone https://github.com/aspose-psd-foss/Aspose.PSD-FOSS-for-Python.git
cd Aspose.PSD-FOSS-for-Python
# No packaging manifest is published yet -- run from this folder,
# or add it to PYTHONPATH:
export PYTHONPATH=$PWD:$PYTHONPATHfrom aspose_psd_foss.psdimage import PsdImage
with PsdImage.load("input.psd") as image:
print(f"Width: {image.width}, Height: {image.height}, Layers: {image.layer_count}")
for layer in image.layers:
print(f" {layer.name}: {layer.bounds}")
image.save("output.psd")
Υποστηριζόμενες Μορφές
| Μορφή | Επέκταση | Ανάγνωση | Εγγραφή |
|---|---|---|---|
| PSD | psd | ✓ | ✓ |
| PSB | psb | ✓ | ✓ |
Ανοιχτό Λογισμικό & Άδειες
Aspose.PSD FOSS για Python είναι αδειοδοτημένο με την άδεια MIT και μπορεί να χρησιμοποιηθεί σε εμπορικά προϊόντα χωρίς δικαιώματα, χωρίς υδατογράφημα αξιολόγησης ή περιορισμό χρήσης.
Η βιβλιοθήκη δεν έχει εξαρτήσεις τρίτων εγγενών — μόνο η τυπική βιβλιοθήκη του Python απαιτείται σε χρόνο εκτέλεσης.