Images

Images

Deze pagina behandelt het plaatsen van rasterafbeeldingen op een pagina, het inspecteren van de al in een document ingesloten afbeeldingen, en het verkleinen van hun grootte. Voor het renderen van een page naar een afbeelding, zie Conversion.


Een afbeelding insluiten

Page.AddImage() plaatst JPEG-, PNG-, BMP- of TIFF-afbeeldingsbytes in een pixelprecisie rechthoek op de 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 accepteert opacity, een expliciete format wanneer deze niet uit de bytes kan worden afgeleid, een tag (een StructElement waaraan de afbeelding kan worden gekoppeld in een getagd document), en een layer voor optionele inhoud.


Ingesloten afbeeldingen inspecteren

Page.Images geeft elke afbeelding die al op de pagina staat weer als ImageInfo[], zonder enige pixeldata te decoderen — elk item toont Width, Height, Bits, ColorSpace en Filter. Roep Decode() aan op een ImageInfo om de ruwe voorbeeldbytes te verkrijgen, Replace() om nieuwe afbeeldingsdata ter plaatse te vervangen, of Remove() om deze van de pagina te verwijderen.

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

Afbeeldingen optimaliseren

Document.Optimize() verkleint de bestandsgrootte over het hele document; geef een images optie (OptimizeImageOptions, met dpi en quality velden) om ook ingesloten afbeeldingen te downsamplen en opnieuw te coderen als onderdeel van dezelfde doorloop.

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

Tips en best practices

  • Page.Images leest alleen metadata — het decoderen van de volledige pixelgegevens van elke afbeelding met Decode() vooraf is onnodig als je alleen afmetingen of kleurruimte nodig hebt.
  • Geef een expliciete format mee in AddImageOptions wanneer de bronbytes afkomstig zijn van een stream of buffer zonder een betrouwbare bestandsextensie om van te sniffen.
  • Gebruik Document.Optimize({ images: { dpi, quality } }) om een document met veel afbeeldingen te verkleinen, in plaats van elke afbeelding handmatig te decoderen en opnieuw toe te voegen.
  • De rechthoek van Page.AddImage() stelt de geplaatste grootte direct in — schaal de doelrechthoek naar de eigen beeldverhouding van de bronafbeelding om uitrekken te voorkomen.

Veelvoorkomende problemen

ProbleemOorzaakOplossing
Afbeelding lijkt uitgerekt of samengeperstDe doel rect die aan AddImage() is doorgegeven, komt niet overeen met de beeldverhouding van de bronafbeeldingBereken de breedte/hoogte van de rechthoek op basis van de eigen afmetingen van de bronafbeelding
Page.AddImage() plaatst het verkeerde formaatHet formaat van de afbeeldingsbytes kon niet betrouwbaar worden gedetecteerdGeef een expliciete format in AddImageOptions
Document is veel groter dan verwacht na het toevoegen van afbeeldingenAfbeeldingen werden ingebed met volledige resolutie en kwaliteitRoep Document.Optimize({ images: { dpi, quality } }) aan om te downsamplen en opnieuw te coderen

FAQ

Hoe plaats ik een afbeelding op een pagina?

Roep page.AddImage(imageBytes, rect) aan, waarbij rect een [x0, y0, x1, y1] rechthoek is in pagina-ruimtepunt.

Hoe kan ik de afbeeldingen die al op een pagina staan opsommen zonder ze te decoderen?

Lees page.Images — een ImageInfo[] die Width, Height, ColorSpace en Filter voor elke afbeelding blootlegt zonder pixelgegevens te decoderen.

Kan ik de bestandsgrootte van een document verkleinen door de afbeeldingen te comprimeren?

Ja — roep Document.Optimize({ images: { dpi, quality } }) aan, die ingesloten afbeeldingen downsamplet en opnieuw codeert als onderdeel van een documentbrede optimalisatiepass.

Hoe verschilt het insluiten van een afbeelding van het renderen van een pagina naar een afbeelding?

Page.AddImage() plaatst rasterafbeeldingsbytes op een bestaande pagina. Page.ToImage() (see Conversion) doet het omgekeerde — de hele pagina renderen naar PNG-bytes.


API Reference Samenvatting

Klasse/MethodeBeschrijving
Page.AddImage()Plaats afbeeldingsbytes in een rechthoek op de pagina
AddImageOptionsOpties voor AddImage(): opacity, format, tag, layer
Page.ImagesElke afbeelding die al op de pagina staat, als alleen-metadata ImageInfo[]
ImageInfo.Decode() / Replace() / Remove()Lees pixelgegevens, verwissel nieuwe bytes, of verwijder een afbeelding
Document.Optimize()Verminder de bestandsgrootte documentbreed, optioneel afbeeldingen downsamplen via images: { dpi, quality }

Zie ook

 Nederlands