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í
formatvAddImageOptions, 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ém | Příčina | Oprava |
|---|---|---|
| Obrázek se zobrazuje natažený nebo stažený | Cílový rect předaný do AddImage() neodpovídá poměru stran zdrojového obrázku | Vypočítejte šířku/výšku obdélníku z rozměrů samotného zdrojového obrázku |
Page.AddImage() umisťuje nesprávný formát | Formát bajtů obrázku nelze spolehlivě detekovat | Předávejte explicitní format v AddImageOptions |
| Dokument je po přidání obrázků mnohem větší, než se očekávalo | Obrá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/Metoda | Popis: |
|---|---|
Page.AddImage() | Vložte bajty obrázku do obdélníku na stránce |
AddImageOptions | Možnosti pro AddImage(): opacity, format, tag, layer |
Page.Images | Kaž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 } |