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.Images legge solo i metadati — decodificare tutti i dati pixel completi di ogni immagine con Decode() in anticipo è superfluo se ti servono solo le dimensioni o lo spazio colore.
  • Fornisci un format esplicito in AddImageOptions quando 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

ProblemaCauseCorrezione
L’immagine appare allungata o schiacciataL’obiettivo rect passato a AddImage() non corrisponde al rapporto d’aspetto dell’immagine sorgenteCalcola la larghezza/altezza del rettangolo dalle dimensioni proprie dell’immagine sorgente
Page.AddImage() utilizza il formato erratoIl formato dei byte dell’immagine non può essere rilevato in modo affidabilePassa un format esplicito in AddImageOptions
Il documento è molto più grande del previsto dopo aver aggiunto le immaginiLe 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/MetodoDescrizione
Page.AddImage()Inserisci i byte dell’immagine in un rettangolo sulla pagina
AddImageOptionsOpzioni per AddImage(): opacity, format, tag, layer
Page.ImagesOgni 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 }

Vedi anche

 Italiano