Images
Images
Questa pagina tratta dell’inserimento di immagini raster in una pagina, dell’ispezione delle immagini già incorporate in un documento e della riduzione delle loro dimensioni. Per il rendering di un page in un’immagine, vedere Conversion.
Incorporare un’immagine
Page.AddImage() posiziona i byte di immagine JPEG, PNG, BMP o TIFF in un rettangolo con precisione pixel sulla pagina.
// 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 accetta opacity, un format esplicito quando non può essere rilevato dai byte, un tag (un StructElement a cui allegare l’immagine in un documento con tag), e un layer per contenuto opzionale.
Ispezionare le immagini incorporate
Page.Images elenca ogni immagine già presente sulla pagina come ImageInfo[], senza decodificare alcun dato pixel — ogni voce espone Width, Height, Bits, ColorSpace e Filter. Chiama Decode() su un ImageInfo per ottenere i suoi byte di esempio grezzi, Replace() per sostituire con nuovi dati immagine in loco, o Remove() per eliminarla dalla pagina.
for (const img of page.Images) {
console.log(img.Width, img.Height, img.ColorSpace, img.Filter);
}Ottimizzare le immagini
Document.Optimize() riduce la dimensione del file in tutto il documento; passa un’opzione images (OptimizeImageOptions, con i campi dpi e quality) per ridurre anche la risoluzione e ricodificare le immagini incorporate come parte della stessa passata.
const report = doc.Optimize({ images: { dpi: 150, quality: 80 } });Consigli e buone pratiche
Page.Imageslegge solo i metadati — decodificare tutti i dati pixel completi di ogni immagine conDecode()in anticipo è superfluo se ti servono solo le dimensioni o lo spazio colore.- Fornisci un
formatesplicito inAddImageOptionsquando i byte di origine provengono da uno stream o un buffer senza un’estensione file affidabile da rilevare. - Usa
Document.Optimize({ images: { dpi, quality } })per ridurre un documento con molte immagini, invece di decodificare manualmente e riaggiungere ciascuna. - Il rettangolo di
Page.AddImage()imposta direttamente la dimensione posizionata — scala il rettangolo di destinazione al rapporto d’aspetto dell’immagine sorgente per evitare di allungarla.
Problemi comuni
| Problema | Cause | Correzione |
|---|---|---|
| L’immagine appare allungata o schiacciata | L’obiettivo rect passato a AddImage() non corrisponde al rapporto d’aspetto dell’immagine sorgente | Calcola la larghezza/altezza del rettangolo dalle dimensioni proprie dell’immagine sorgente |
Page.AddImage() utilizza il formato errato | Il formato dei byte dell’immagine non può essere rilevato in modo affidabile | Passa un format esplicito in AddImageOptions |
| Il documento è molto più grande del previsto dopo aver aggiunto le immagini | Le immagini sono state incorporate a piena risoluzione e qualità | Chiama Document.Optimize({ images: { dpi, quality } }) per ridurre la risoluzione e ricodificare |
FAQ
Come inserisco un'immagine in una pagina?
Chiama page.AddImage(imageBytes, rect), dove rect è un rettangolo [x0, y0, x1, y1] in punti dello spazio della pagina.
Come elenco le immagini già presenti in una pagina senza decodificarle?
Leggi page.Images — un ImageInfo[] che espone Width, Height, ColorSpace e Filter per ogni immagine senza decodificare i dati dei pixel.
Posso ridurre la dimensione del file di un documento comprimendo le sue immagini?
Sì — chiama Document.Optimize({ images: { dpi, quality } }), che esegue il downsampling e la ricodifica delle immagini incorporate come parte di un’ottimizzazione a livello di documento.
In che modo l'incorporamento di un'immagine differisce dal rendering di una pagina in un'immagine?
Page.AddImage() posiziona i byte dell’immagine raster su una pagina esistente. Page.ToImage() (vedi Conversion) fa il contrario — renderizzando l’intera pagina in byte PNG.
API Reference Riepilogo
| Classe/Metodo | Descrizione |
|---|---|
Page.AddImage() | Inserisci i byte dell’immagine in un rettangolo sulla pagina |
AddImageOptions | Opzioni per AddImage(): opacity, format, tag, layer |
Page.Images | Ogni immagine già presente nella pagina, come ImageInfo[] solo metadati |
ImageInfo.Decode() / Replace() / Remove() | Leggi i dati dei pixel, sostituisci con nuovi byte o rimuovi un’immagine |
Document.Optimize() | Riduci la dimensione del file a livello di documento, opzionalmente eseguendo il downsampling delle immagini tramite images: { dpi, quality } |