Images

Images

Denna sida behandlar att placera rasterbilder på en sida, inspektera bilder som redan är inbäddade i ett dokument och minska deras storlek. För rendering av en page till en bild, se Conversion.


Inbädda en bild

Page.AddImage() placerar JPEG-, PNG-, BMP- eller TIFF-bildbytes i en pixelprecis rektangel på sidan.

// 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 accepterar opacity, en explicit format när den inte kan identifieras från byten, en tag (en StructElement att fästa bilden på i ett taggat dokument), och en layer för valfritt innehåll.


Inspektera inbäddade bilder

Page.Images listar varje bild som redan finns på sidan som ImageInfo[], utan att avkoda någon pixeldata — varje post visar Width, Height, Bits, ColorSpace och Filter. Anropa Decode() på ett ImageInfo för att få dess råa provbytes, Replace() för att byta in ny bilddata på plats, eller Remove() för att ta bort den från sidan.

for (const img of page.Images) {
  console.log(img.Width, img.Height, img.ColorSpace, img.Filter);
}

Optimera bilder

Document.Optimize() minskar filstorleken i hela dokumentet; skicka ett images alternativ (OptimizeImageOptions, med dpi och quality fält) för att även nerprovsampling och återkoda inbäddade bilder som en del av samma körning.

const report = doc.Optimize({ images: { dpi: 150, quality: 80 } });

Tips och bästa praxis

  • Page.Images läser endast metadata — att avkoda varje bilds fulla pixeldata med Decode() i förväg är onödigt om du bara behöver dimensioner eller färgrymd.
  • Skicka en explicit format i AddImageOptions när källbytes kommer från en ström eller buffer utan en pålitlig filändelse att sniffa från.
  • Använd Document.Optimize({ images: { dpi, quality } }) för att krympa ett dokument med många bilder, snarare än att manuellt avkoda och återlägga varje bild.
  • Page.AddImage()s rektangel sätter den placerade storleken direkt — skala målrektangeln till källbildens egna bildförhållande för att undvika att den sträcks.

Vanliga problem

ProblemOrsakLösning
Bild visas sträckt eller klämdMålet rect som skickas till AddImage() matchar inte källbildens bildförhållandeBeräkna rektangelns bredd/höjd utifrån källbildens egna dimensioner
Page.AddImage() placerar fel formatBildbytesformatet kunde inte identifieras på ett tillförlitligt sättSkicka en explicit format i AddImageOptions
Dokumentet är mycket större än förväntat efter att ha lagt till bilderBilderna bäddades in i full upplösning och kvalitetAnropa Document.Optimize({ images: { dpi, quality } }) för att minska upplösningen och återkoda

FAQ

Hur placerar jag en bild på en sida?

Anropa page.AddImage(imageBytes, rect), där rect är en [x0, y0, x1, y1] rektangel i sidrymdspunkter.

Hur listar jag bilderna som redan finns på en sida utan att avkoda dem?

Läs page.Images — en ImageInfo[] som exponerar Width, Height, ColorSpace och Filter för varje bild utan att avkoda pixeldata.

Kan jag minska filstorleken på ett dokument genom att komprimera dess bilder?

Ja — anropa Document.Optimize({ images: { dpi, quality } }), som nedskaladar och återkodar inbäddade bilder som en del av ett dokumentomfattande optimeringspass.

Hur skiljer sig inbäddning av en bild från att rendera en sida till en bild?

Page.AddImage() placerar rasterbildbytes på en befintlig sida. Page.ToImage() (se Conversion) gör det omvända — renderar hela sidan till PNG-byte.


API Reference Sammanfattning

Klass/MetodBeskrivning
Page.AddImage()Placera bildbytes i en rektangel på sidan
AddImageOptionsAlternativ för AddImage(): opacity, format, tag, layer
Page.ImagesVarje bild som redan finns på sidan, som metadata-endast ImageInfo[]
ImageInfo.Decode() / Replace() / Remove()Läs pixeldata, byt in nya byte eller ta bort en bild
Document.Optimize()Minska filstorleken i hela dokumentet, eventuellt genom att nedskala bilder via images: { dpi, quality }

Se även

 Svenska