Images

Images

Tato stránka se zabývá umisťováním rastrových obrázků na stránku, prohlížením již vložených obrázků v dokumentu a zmenšováním jejich velikosti. Pro vykreslení a page na obrázek, viz Conversion.


Vkládání obrázku

Page.AddImage() umisťuje bajty obrázku JPEG, PNG, BMP nebo TIFF do pixelově přesného obdélníku na stránce.

// 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 přijímá opacity, explicitní format, když jej nelze detekovat z bajtů, tag ( StructElement pro připojení obrázku v označeném dokumentu), a layer pro volitelný obsah.


Prohlížení vložených obrázků

Page.Images vypisuje každý obrázek již na stránce jako ImageInfo[], aniž by dekódoval jakákoli pixelová data — každý záznam odhaluje Width, Height, Bits, ColorSpace a Filter. Zavolejte Decode() na ImageInfo, abyste získali jeho surové vzorové bajty, Replace() pro výměnu nových dat obrázku na místě, nebo Remove() pro jeho smazání ze stránky.

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

Optimalizace obrázků

Document.Optimize() snižuje velikost souboru v celém dokumentu; předejte volbu images (OptimizeImageOptions s poli dpi a quality), aby se také provádělo downsampling a pře-kódování vložených obrázků jako součást stejného průchodu.

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

Tipy a osvědčené postupy

  • Page.Images čte pouze metadata — dekódování kompletních pixelových dat každého obrázku pomocí Decode() předem není nutné, pokud potřebujete jen rozměry nebo barevný prostor.
  • Předávejte explicitní format v AddImageOptions, když zdrojové bajty pocházejí ze streamu nebo bufferu bez spolehlivé přípony souboru, kterou by šlo detekovat.
  • Použijte Document.Optimize({ images: { dpi, quality } }) k zmenšení dokumentu s mnoha obrázky místo ručního dekódování a opětovného přidávání každého z nich.
  • Obdélník Page.AddImage() nastavuje umístěnou velikost přímo — upravte cílový obdélník na poměr stran původního obrázku, abyste předešli jeho roztažení.

Časté problémy

ProblémPříčinaOprava
Obrázek se zobrazuje natažený nebo staženýCílový rect předaný do AddImage() neodpovídá poměru stran zdrojového obrázkuVypočítejte šířku/výšku obdélníku z rozměrů samotného zdrojového obrázku
Page.AddImage() umisťuje nesprávný formátFormát bajtů obrázku nelze spolehlivě detekovatPředávejte explicitní format v AddImageOptions
Dokument je po přidání obrázků mnohem větší, než se očekávaloObrázky byly vloženy v plném rozlišení a kvalitěZavolejte Document.Optimize({ images: { dpi, quality } }) pro downsample a re-encode

FAQ

Jak umístím obrázek na stránku?

Zavolejte page.AddImage(imageBytes, rect), kde rect je [x0, y0, x1, y1] obdélník v bodech prostoru stránky.

Jak získám seznam obrázků, které jsou již na stránce, bez jejich dekódování?

Přečtěte page.Images — ImageInfo[], který vystavuje Width, Height, ColorSpace a Filter pro každý obrázek bez dekódování pixelových dat.

Mohu snížit velikost souboru dokumentu kompresí jeho obrázků?

Ano — zavolejte Document.Optimize({ images: { dpi, quality } }), který podvzorkuje a přeenkóduje vložené obrázky jako součást optimalizačního průchodu celého dokumentu.

Jak se liší vložení obrázku od vykreslení stránky do obrázku?

Page.AddImage() umísťuje bajty rastrového obrázku na existující stránku. Page.ToImage() (viz Conversion) dělá opak — vykreslení celé stránky do PNG bajtů.


API Reference Shrnutí

Třída/MetodaPopis:
Page.AddImage()Vložte bajty obrázku do obdélníku na stránce
AddImageOptionsMožnosti pro AddImage(): opacity, format, tag, layer
Page.ImagesKaždý obrázek již na stránce, jako pouze metadata ImageInfo[]
ImageInfo.Decode() / Replace() / Remove()Číst data pixelů, vyměnit nové bajty nebo odstranit obrázek
Document.Optimize()Zmenšit velikost souboru v celém dokumentu, volitelně snížením rozlišení obrázků pomocí images: { dpi, quality }

Viz také:

 Čeština