Resources
Resources
Ένα φορτωμένο PsdImage εκθέτει τα μπλοκ πόρων εικόνας — καταχωρήσεις τύπου μεταδεδομένων όπως πλέγματα, οδηγούς και φορτία προφίλ ICC — μέσω δύο προβολών μόνο για ανάγνωση, συν ένα ξεχωριστό περίληψη για παλετές χρωμάτων με ευρετήριο.
Καταγραφή Μπλοκ Πόρων
PsdImage.image_resources επιστρέφει ένα PreservedResourceBlock ανά πόρο, με το ακατέργαστο ID πόρου, το όνομα και το μέγεθος σε byte:
from aspose_psd_foss.psdimage import PsdImage
from aspose_psd_foss.resources.imageresourceids import ImageResourceIds
image = PsdImage.load(input_path)
for block in image.image_resources:
print(f"ID: {block.id}, name: {block.name!r}, size: {block.size} bytes")PsdImage.resources επιστρέφει αντί αυτού ξεχωριστή PsdResourceInfo περίληψη ανά πόρο, προσθέτοντας μια ταξινόμηση kind — σε αυτή τη FOSS έκδοση το kind είναι πάντα PsdResourceKind.UNKNOWN, επειδή ο αναλυτής πόρων αυτής της έκδοσης δεν αποκωδικοποιεί συγκεκριμένα IDs πόρων σε σημασιολογικές ιδιότητες.
Αναγνώριση Γνωστών IDs Πόρων
Εφόσον το kind δεν έχει σημασιολογική επίλυση, αναγνωρίστε έναν συγκεκριμένο πόρο συγκρίνοντας το block.id με τις σταθερές στο ImageResourceIds:
for block in image.image_resources:
if block.id == ImageResourceIds.ICC_PROFILE:
print(f"Found an ICC profile resource ({block.data_size} bytes)")Ανάγνωση μιας Ευρετηρημένης Παλέτας Χρωμάτων
Αν τα χρωματικά δεδομένα του εγγράφου είναι βασισμένα σε παλέτα, το PsdImage.indexed_palette επιστρέφει τις εγγραφές του:
palette = image.indexed_palette
if palette is not None:
print(f"Palette entries: {len(palette.entries)}")Συμβουλές και Καλές Πρακτικές
- Ο getter του
PsdImage.image_resourcesλειτουργεί για την καταγραφή πόρων, αλλά ο setter του προκαλείNotSupportedException— οι πόροι είναι μόνο για ανάγνωση σε αυτήν την έκδοση FOSS. - Τα
PsdImage.has_icc_profile,is_icc_profile_untaggedκαιglobal_angleείναι σταθερές τιμές placeholder σε αυτήν την έκδοση FOSS (πάνταFalse,Noneκαι0αντίστοιχα) ανεξάρτητα από το πραγματικό περιεχόμενο του φορτωμένου εγγράφου — χρησιμοποιήστε το παραπάνω μοτίβο σύγκρισης resource-ID αν χρειάζεται να εντοπίσετε αυτούς τους πόρους μόνοι σας. - Το
PreservedResourceBlock.save()προκαλείNotImplementedErrorεάν κληθεί άμεσα — οι πόροι περνούν αυτόματα (round-trip) όταν καλέσετε τοimage.save()σε ολόκληρο το έγγραφο.
Συνηθισμένα Προβλήματα
| Πρόβλημα | Αιτία | Διόρθωση |
|---|---|---|
image.indexed_palette είναι None | Ο τύπος δεδομένων χρώματος του εγγράφου δεν είναι INDEXED_PALETTE | Μόνο έγγραφα με χρώματα δείκτη διαθέτουν παλέτα |
NotSupportedException ρύθμιση image.image_resources | Ο setter δεν υποστηρίζεται σε αυτήν τη FOSS έκδοση | Αντιμετωπίστε image_resources ως μόνο για ανάγνωση |
has_icc_profile / is_icc_profile_untagged / global_angle ποτέ μην αλλάζουν | Αυτές οι 3 ιδιότητες είναι σκληρά κωδικοποιημένα placeholder stub σε αυτήν την κατασκευή FOSS | Συγκρίνετε το block.id με το ImageResourceIds αντί αυτού (δείτε παραπάνω) |
FAQ
Ποια είναι η διαφορά μεταξύ image_resources και resources;
Και τα δύο καταχωρίζουν τα ίδια υποκείμενα μπλοκ πόρων, αλλά ως διαφορετικούς τύπους αντικειμένων: image_resources επιστρέφει αντικείμενα PreservedResourceBlock (ακατέργαστο ID/όνομα/μέγεθος, χρησιμοποιείται για round-tripping), ενώ resources επιστρέφει συνοπτικές PsdResourceInfo (προσθέτει μια ταξινόμηση kind, η οποία αυτή τη στιγμή είναι πάντα UNKNOWN).
Μπορώ να τροποποιήσω ή να αφαιρέσω έναν πόρο εικόνας;
Όχι — ο setter του image_resources προκαλεί NotSupportedException, και το PreservedResourceBlock.save() προκαλεί NotImplementedError εάν κληθεί απευθείας. Οι πόροι είναι μόνο για ανάγνωση σε αυτήν την έκδοση FOSS.
API Reference Περίληψη
| Κλάση/Μέθοδος | Περιγραφή |
|---|---|
PsdImage.image_resources | Ακατέργαστα μπλοκ πόρων (PreservedResourceBlock, μόνο για ανάγνωση) |
PsdImage.resources | Περίληψη πόρων (PsdResourceInfo, kind πάντα UNKNOWN) |
PsdImage.indexed_palette | ΠΕρίληψη ευρετηριασμένης παλέτας χρωμάτων, όταν υπάρχει |
ImageResourceIds | Γνωστές σταθερές ταυτοτήτων πόρων για σύγκριση με resource_id/id |