1. Προϊόντα
  2.   Aspose.PSD
  3.   Aspose.PSD FOSS for Python

Aspose.PSD FOSS για Python

Βιβλιοθήκη ανοιχτού κώδικα Python για τη φόρτωση, την επιθεώρηση και την αποθήκευση αρχείων PSD/PSB με πρόσβαση σε μεταδεδομένα επιπέδων. Άδεια MIT, δεν απαιτείται το Adobe Photoshop.

Βιβλιοθήκη Python ανοιχτού κώδικα για αρχεία PSD/PSB

Aspose.PSD FOSS for Python είναι μια δωρεάν, αδειοδοτημένη με MIT, καθαρή βιβλιοθήκη Python για τη φόρτωση, επιθεώρηση και αποθήκευση αρχείων Adobe Photoshop PSD και PSB χωρίς να απαιτεί Adobe Photoshop ή οποιοδήποτε κλειστό runtime.
Αποκαλύπτει μια ελαφριά, ανεξάρτητη API εστιασμένη στο PsdImage και Layer, παρέχοντας στους Python προγραμματιστές προγραμματιστική πρόσβαση στη δομή ενός εγγράφου PSD χωρίς εγγενείς εξαρτήσεις για μεταγλώττιση.
Η βιβλιοθήκη διαβάζει τις διαστάσεις, τη λειτουργία χρώματος, το βάθος bit και τη μέθοδο συμπίεσης ενός αρχείου PSD/PSB, και εκθέτει κάθε στρώμα μέσω του PsdImage.layers: κάθε Layer αναφέρει το όνομά του, τα όρια, την αδιαφάνεια, την ορατότητα και το κλειδί λειτουργίας ανάμειξης (BlendMode), μαζί με πληροφορίες καναλιού χαμηλότερου επιπέδου (ChannelInformation) και δεδομένα μάσκας (LayerMaskData).
Ένα υποσύνολο μεταδεδομένων στρώματος — όνομα, όρια (left/top/right/bottom), και λειτουργία ανάμειξης — μπορεί να τροποποιηθεί επί τόπου και να αποθηκευτεί ξανά στο δίσκο με το PsdImage.save()· όλα τα άλλα στην επιφάνεια είναι μόνο για ανάγνωση κατά σχεδίαση σε αυτήν την έκδοση FOSS.
Aspose.PSD FOSS for Python είναι αδειοδοτημένο με MIT. Εγκαταστήστε το με pip install aspose-psd-foss — η βιβλιοθήκη δεν έχει καμία εξωτερική εγγενή εξάρτηση, μόνο τη στάνταρ βιβλιοθήκη Python.
Για την οικογένεια επιχειρηματικών προϊόντων, δείτε Aspose.PSD — Enterprise Product Family.

Φόρτωση και Επιθεώρηση Αρχείων PSD/PSB

  • Image.load(file_path) ανοίγει ένα αρχείο και επιστρέφει μια παρουσία PsdImage
  • PsdImage.width, height, και channels_count αναφέρουν τις διαστάσεις του καμβά και τον αριθμό καναλιών
  • Τα στοιχεία κεφαλίδας του εγγράφου διαβάζονται από τη λειτουργία χρώματος και τα μεταδεδομένα συμπίεσης του αναλυμένου αρχείου
  • PsdImage.layers επιστρέφει τη πλήρη λίστα των αντικειμένων Layer με τη σειρά του εγγράφου

Επικύρωση και Καταλογοποίηση Αρχείων Σχεδίασης

  • Επικυρώστε μια δέσμη αρχείων σχεδίου πριν τα παραδώσετε σε μια επακόλουθη διαδικασία
  • Δημιουργήστε έναν ελαφρύ κατάλογο πόρων με διαστάσεις PSD/PSB και αριθμούς στρώσεων
  • Ανιχνεύστε αρχεία PSB (μεγάλου εγγράφου) που απαιτούν διαφορετική διαχείριση από τα τυπικά PSD

Εργασία με Στρώματα

  • PsdImage.layers επιστρέφει κάθε Layer με τη σειρά του εγγράφου· κάθε Layer εκθέτει τα name, bounds, opacity, is_visible και blend_mode_key
  • Layer.channel_information εκθέτει μεταδεδομένα καναλιού για πιο βαθιά επιθεώρηση
  • Layer.channels_count αναφέρει πόσα κανάλια εικόνας περιέχει ένα layer
  • Το PsdImage.layers μπορεί να επανατοποθετηθεί για αφαίρεση ή αναδιάταξη των layers

Δομή Στρώματος Ελέγχου

  • Ελέγξτε τη δομή των επιπέδων ενός PSD χωρίς να ανοίξετε το Photoshop
  • Δημιουργήστε μια αναφορά με τα ονόματα των επιπέδων, την ορατότητα και τις λειτουργίες ανάμειξης για ανασκόπηση σχεδίου
  • Εντοπίστε κρυμμένα ή επίπεδα με μηδενική αδιαφάνεια που έμειναν από προηγούμενες επεξεργασίες

Επεξεργασία βασικών μεταδεδομένων στρώσης

  • Layer.name, Layer.left/top/right/bottom και Layer.blend_mode_key μπορούν να οριστούν απευθείας
  • PsdImage.save(file_path) αποθηκεύει το τροποποιημένο έγγραφο ξανά στο δίσκο
  • Η επαναφόρτωση ενός αποθηκευμένου αρχείου με PsdImage.load επιβεβαιώνει ότι οι επεξεργασίες ολοκληρώνονται σωστά
  • Ιδιότητες που δεν αναφέρονται παραπάνω (πληροφορίες καναλιού, δεδομένα μάσκας, περιοχές ανάμειξης) προκαλούν NotSupportedException εάν οριστούν — αυτή η έκδοση υποστηρίζει επεξεργασίες μόνο μεταδεδομένων, όχι πλήρη επανασύνθεση

Ελαφριές, Επεξεργασίες με Σενάριο

  • Μετονομάστε τα επίπεδα προγραμματιστικά ως μέρος μιας αυτοματοποιημένης διαδικασίας οργάνωσης αρχείων
  • Μετατοπίστε ή αλλάξτε το μέγεθος του πλαισίου περιγράμματος ενός επιπέδου χωρίς εργαλείο σχεδίασης
  • Ενημερώστε μαζικά τις λειτουργίες ανάμειξης σε πολλά αρχεία για συνέπεια

Επιθεώρηση Καναλιού και Δεδομένων Πόρου

  • Layer.channel_information εκθέτει συλλογές μεταδεδομένων ανά κανάλι
  • Layer.has_mask_data και has_blending_ranges_data αναφέρουν εάν υπάρχουν προαιρετικές ενότητες
  • PsdLoadException και PsdSaveException εμφανίζουν σφάλματα φόρτωσης/αποθήκευσης με σαφή μηνύματα
  • Όλες οι κλάσεις είναι καθαρές Python χωρίς μεταγλωττισμένα αρχεία επέκτασης

Διάγνωση και Έλεγχος

  • Διαγνώστε γιατί ένα συγκεκριμένο αρχείο PSD αποτυγχάνει να φορτωθεί, με μια εξαίρεση συγκεκριμένου τύπου αντί για γενικό σφάλμα
  • Ελέγξτε εάν ένα στρώμα μεταφέρει δεδομένα μάσκας ή περιοχής ανάμειξης πριν το επεξεργαστείτε
  • Εξετάστε τα μεταδεδομένα ανά κανάλι για διαγνωστικά σε επίπεδο μορφής

Φορτώστε ένα αρχείο PSD και εξετάστε τις στρώσεις του

Φορτώστε ένα αρχείο με Image.load για να αποκτήσετε μια παρουσία PsdImage για τα μέλη που είναι ειδικά για PSD.

from aspose_psd_foss.image import Image
with Image.load("test.psd") as image:
    print(f"Width: {image.width}, Channels: {image.channels_count}, Layers: {len(image.layers)}")

Επεξεργασία ορίων στρώματος και λειτουργίας ανάμειξης, στη συνέχεια αποθήκευση

Τα όρια του στρώματος και η λειτουργία ανάμειξης μπορούν να αλλάξουν στη θέση τους και να αποθηκευτούν ξανά στον δίσκο.

from aspose_psd_foss.psdimage import PsdImage
from aspose_psd_foss.layers.blendmode import BlendMode

with PsdImage.load("test.psd") as image:
    image.layers[0].left = 10
    image.layers[0].top = 20
    image.layers[0].right = 40
    image.layers[0].bottom = 60
    image.layers[0].blend_mode_key = BlendMode.MULTIPLY
    image.save("edited.psd")

with PsdImage.load("edited.psd") as reloaded:
    print(f"Bounds: {reloaded.layers[0].bounds}, BlendMode: {reloaded.layers[0].blend_mode_key}")

Ανάγνωση Πληροφοριών Καναλιού (Μόνο-Ανάγνωση)

Οι πληροφορίες καναλιού μπορούν να διαβαστούν αλλά δεν μπορούν να επανατοποθετηθούν — η προσπάθεια να τις ορίσετε προκαλεί NotSupportedException.

from aspose_psd_foss.psdimage import PsdImage
with PsdImage.load("test.psd") as image:
    layer = image.layers[0]
    channel_information = layer.channel_information
    print(f"Channel count: {layer.channels_count}, first channel: `NotSupportedException`")
    # layer.channel_information = channel_information  # raises NotSupportedException

Συχνές Ερωτήσεις

Ποιο είναι το μοντέλο αδειοδότησης;

Aspose.PSD FOSS for Python είναι αδειοδοτημένο υπό την άδεια MIT. Μπορείτε να το χρησιμοποιήσετε, να το τροποποιήσετε και να το αναδιανείμετε σύμφωνα με τους όρους της άδειας MIT, συμπεριλαμβανομένων των εμπορικών προϊόντων.

Πώς εγκαθιστώ το Aspose.PSD FOSS for Python;

Δείτε την ενότητα εγκατάστασης παραπάνω για την τρέχουσα εντολή εγκατάστασης.

Ποιες μορφές μπορεί το Aspose.PSD FOSS for Python να διαβάσει και να γράψει;

Φορτώνει και αποθηκεύει αρχεία PSD και PSB (Photoshop large document). Δεν αποδίδει ή εξάγει δεδομένα εικονοστοιχείων σε άλλες ραστερ μορφές όπως PNG ή JPEG.

Ποια είναι η κύρια κλάση σημείου εισόδου;

PsdImage (μια υποκλάση του Image). Φορτώστε ένα έγγραφο με PsdImage.load, στη συνέχεια διαβάστε τη συλλογή layers και τις ιδιότητες κεφαλίδας.

Μπορώ να τροποποιήσω τα μεταδεδομένα του επιπέδου;

Ναι — Layer εκθέτει έναν λειτουργικό setter για πολλές ιδιότητες, όπως την ορατότητα και το όνομα, και το PsdImage.layers ίδιο έχει έναν λειτουργικό setter για την αντικατάσταση της συλλογής. Μερικές συγκεκριμένες ιδιότητες (πληροφορίες καναλιού, δεδομένα μάσκας, περιοχές ανάμειξης και ορισμένοι πόροι σε επίπεδο εγγράφου) είναι μόνο για ανάγνωση σε αυτήν την έκδοση FOSS και προκαλούν NotSupportedException εάν οριστούν.

  

Υποστήριξη και Πόροι Μάθησης

 Ελληνικά