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

Δείτε επίσης

 Ελληνικά