Images
Images
Αυτή η σελίδα καλύπτει την τοποθέτηση ραστερ εικόνων σε μια σελίδα, την επιθεώρηση των εικόνων που είναι ήδη ενσωματωμένες σε ένα έγγραφο και τη μείωση του μεγέθους τους. Για την απόδοση ενός page σε μια εικόνα, δείτε Conversion.
Ενσωμάτωση εικόνας
Page.AddImage() τοποθετεί τα bytes εικόνας JPEG, PNG, BMP ή TIFF σε ένα ορθογώνιο με ακρίβεια pixel στη σελίδα.
// Source is 1280x1014; scaled to 60% of the page width, aspect preserved.
const srcW = 1280;
const srcH = 1014;
const imgW = pageWidth(page) * 0.6;
const imgH = (imgW * srcH) / srcW;
const x = (pageWidth(page) - imgW) / 2;
const y = (pageHeight(page) - imgH) / 2;
page.AddImage(imageBytes, [x, y, x + imgW, y + imgH]);AddImageOptions δέχεται opacity, ένα ρητό format όταν δεν μπορεί να προσδιοριστεί από τα bytes, ένα tag (ένα StructElement για να συνδέσετε την εικόνα σε ένα ετικετοποιημένο έγγραφο), και ένα layer για προαιρετικό περιεχόμενο.
Επιθεώρηση ενσωματωμένων εικόνων
Page.Images απαριθμεί κάθε εικόνα που βρίσκεται ήδη στη σελίδα ως ImageInfo[], χωρίς να αποκωδικοποιεί κανένα δεδομένο pixel — κάθε καταχώρηση εκθέτει Width, Height, Bits, ColorSpace και Filter. Καλέστε Decode() σε ένα ImageInfo για να λάβετε τα ακατέργαστα δείγμα bytes του, Replace() για να αντικαταστήσετε με νέα δεδομένα εικόνας στη θέση του, ή Remove() για να το διαγράψετε από τη σελίδα.
for (const img of page.Images) {
console.log(img.Width, img.Height, img.ColorSpace, img.Filter);
}Βελτιστοποίηση Εικόνων
Document.Optimize() μειώνει το μέγεθος του αρχείου σε ολόκληρο το έγγραφο· περάστε μια επιλογή images (OptimizeImageOptions, με πεδία dpi και quality) για να υποβαθμίσετε και να ξανακωδικοποιήσετε τις ενσωματωμένες εικόνες ως μέρος της ίδιας διεργασίας.
const report = doc.Optimize({ images: { dpi: 150, quality: 80 } });Συμβουλές και Καλύτερες Πρακτικές
Page.Imagesδιαβάζει μόνο τα μεταδεδομένα — η αποκωδικοποίηση των πλήρων δεδομένων εικονοστοιχείων κάθε εικόνας μεDecode()εκ των προτέρων δεν είναι απαραίτητη αν χρειάζεστε μόνο τις διαστάσεις ή το χρωματικό χώρο.- Προσθέστε ένα ρητό
formatστοAddImageOptionsόταν τα αρχικά bytes προέρχονται από ροή ή buffer χωρίς αξιόπιστη κατάληξη αρχείου για ανίχνευση. - Χρησιμοποιήστε το
Document.Optimize({ images: { dpi, quality } })για να μειώσετε ένα έγγραφο με πολλές εικόνες, αντί να αποκωδικοποιείτε και να προσθέτετε ξανά κάθε μία με το χέρι. - Το ορθογώνιο του
Page.AddImage()ορίζει άμεσα το τοποθετημένο μέγεθος — προσαρμόστε το ορθογώνιο-στόχο στην αναλογία διαστάσεων της πηγαίας εικόνας για να αποφύγετε την παραμόρφωση.
Κοινά Προβλήματα
| Πρόβλημα | Αιτία | Διόρθωση |
|---|---|---|
| Η εικόνα εμφανίζεται τεντωμένη ή συμπιεσμένη | Ο προορισμός rect που περνάει στο AddImage() δεν ταιριάζει με την αναλογία διαστάσεων της πηγής εικόνας | Υπολογίστε το πλάτος/ύψος του ορθογωνίου από τις διαστάσεις της πηγής εικόνας |
Page.AddImage() τοποθετεί το λάθος μορφότυπο | Η μορφή των bytes της εικόνας δεν μπόρεσε να ανιχνευθεί αξιόπιστα | Παρέχετε ένα ρητό format στο AddImageOptions |
| Το έγγραφο είναι πολύ μεγαλύτερο από το αναμενόμενο μετά την προσθήκη εικόνων | Οι εικόνες ενσωματώθηκαν σε πλήρη ανάλυση και ποιότητα | Καλέστε το Document.Optimize({ images: { dpi, quality } }) για να μειώσετε την ανάλυση και να επανακωδικοποιήσετε |
FAQ
Πώς τοποθετώ μια εικόνα σε μια σελίδα;
Κλήστε το page.AddImage(imageBytes, rect), όπου το rect είναι ένα [x0, y0, x1, y1] ορθογώνιο σε μονάδες χώρου σελίδας.
Πώς μπορώ να απαριθμήσω τις εικόνες που ήδη υπάρχουν σε μια σελίδα χωρίς να τις αποκωδικοποιήσω;
Διαβάστε το page.Images — ένα ImageInfo[] που εκθέτει τα Width, Height, ColorSpace και Filter για κάθε εικόνα χωρίς να αποκωδικοποιεί τα δεδομένα εικονοστοιχείων.
Μπορώ να μειώσω το μέγεθος αρχείου ενός εγγράφου συμπιέζοντας τις εικόνες του;
Ναι — κλήστε το Document.Optimize({ images: { dpi, quality } }), το οποίο κάνει υποδειγματοληψία και επανακωδικοποίηση των ενσωματωμένων εικόνων ως μέρος μιας βελτιστοποίησης σε όλο το έγγραφο.
Πώς διαφέρει η ενσωμάτωση μιας εικόνας από την απόδοση μιας σελίδας σε εικόνα;
Page.AddImage() τοποθετεί τα bytes της ραστέρ εικόνας σε υπάρχουσα σελίδα. Page.ToImage() (δείτε Conversion) κάνει το αντίστροφο — αποδίδοντας ολόκληρη τη σελίδα σε bytes PNG.
API Reference Περίληψη
| Κλάση/Μέθοδος | Περιγραφή |
|---|---|
Page.AddImage() | Τοποθετήστε τα bytes της εικόνας σε ένα ορθογώνιο στην σελίδα |
AddImageOptions | Επιλογές για AddImage(): opacity, format, tag, layer |
Page.Images | Κάθε εικόνα που υπάρχει ήδη στη σελίδα, ως μόνο-μεταδεδομένα ImageInfo[] |
ImageInfo.Decode() / Replace() / Remove() | Διαβάστε τα δεδομένα εικονοστοιχείων, αντικαταστήστε τα με νέα bytes ή αφαιρέστε μια εικόνα |
Document.Optimize() | Μειώστε το μέγεθος του αρχείου σε όλο το έγγραφο, προαιρετικά μειώνοντας την ανάλυση των εικόνων μέσω images: { dpi, quality } |