Images

Images

Ez az oldal a raszteres képek egy oldalra helyezését, a dokumentumba már beágyazott képek ellenőrzését és méretük csökkentését tárgyalja. A rendereléshez egy page képre, lásd Conversion.


Kép beágyazása

Page.AddImage() a JPEG, PNG, BMP vagy TIFF képadatokat egy pixelpontos téglalapba helyezi az oldalon.

// 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 elfogadja a opacity-t, egy explicit format-t, ha azt a bájtokból nem lehet meghatározni, egy tag-t (egy StructElement, amelyhez a képet egy címkézett dokumentumban csatolják), és egy layer-t opcionális tartalomként.


Beágyazott képek ellenőrzése

Page.Images felsorolja az oldalon már lévő minden képet ImageInfo[] néven, anélkül, hogy pixel adatot dekódolna — minden bejegyzés megjeleníti a Width, Height, Bits, ColorSpace és Filter értékeket. Hívja a Decode()-t egy ImageInfo objektumon, hogy megkapja a nyers mintabájtokat, a Replace()-t új képadatok helyettesítésére, vagy a Remove()-t a kép törléséhez az oldalról.

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

Képek optimalizálása

Document.Optimize() csökkenti a fájlméretet a teljes dokumentumban; adj meg egy images opciót (OptimizeImageOptions, a dpi és quality mezőkkel), hogy a beágyazott képeket is lecsökkentsd és újrakódold ugyanazon átfutás részeként.

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

Tippek és bevált gyakorlatok

  • Page.Images csak a metaadatokat olvassa — minden kép teljes pixeltartalmának dekódolása a Decode() segítségével előre felesleges, ha csak a méretekre vagy a színtérre van szükség.
  • Adj meg egy explicit format értéket a AddImageOptions-ben, ha a forrásbájtok egy olyan streamből vagy pufferből jönnek, amelynek nincs megbízható fájlkiterjesztése, amitől meghatározható lenne.
  • Használd a Document.Optimize({ images: { dpi, quality } })-t, hogy összenyomj egy sok képet tartalmazó dokumentumot, ahelyett, hogy manuálisan dekódolnád és újra hozzáadnád őket egyesével.
  • A Page.AddImage() téglalapja közvetlenül beállítja a elhelyezett méretet — méretezd a cél téglalapot a forráskép saját képarányához, hogy elkerüld a nyújtást.

Gyakori problémák

ProblémaOkJavítás
A kép nyúlt vagy összenyomottnak tűnikA rect cél, amelyet a AddImage() kapott, nem egyezik a forráskép képarányávalSzámítsa ki a téglalap szélességét/magasságát a forráskép saját méreteiből
Page.AddImage() helytelen formátumot helyez elA kép bájtok formátuma nem határozható meg megbízhatóan.Adj meg egy explicit format-t a AddImageOptions-ben.
A dokumentum sokkal nagyobb, mint várható volt a képek hozzáadása után.A képek teljes felbontásban és minőségben lettek beágyazva.Hívd meg a Document.Optimize({ images: { dpi, quality } })-t a lecsökkentéshez és újbóli kódoláshoz.

FAQ

Hogyan helyezhetek el egy képet egy oldalon?

Hívja a(z) page.AddImage(imageBytes, rect), ahol a(z) rect egy [x0, y0, x1, y1] téglalap oldal-koordináta pontokban.

Hogyan sorolhatom fel a már az oldalon lévő képeket anélkül, hogy dekódolnám őket?

Olvassa el a(z) page.Images – egy ImageInfo[], amely Width, Height, ColorSpace és Filter adja meg minden képhez anélkül, hogy a pixeladatokat dekódolná.

Csökkenthetem egy dokumentum fájlméretét a képek tömörítésével?

Igen – hívja a(z) Document.Optimize({ images: { dpi, quality } }), amely lecsökkenti a mintavételezést és újrakódolja a beágyazott képeket a dokumentum-szintű optimalizációs lépés részeként.

Miben különbözik egy kép beágyazása attól, hogy egy oldalt képre renderelünk?

Page.AddImage() Raster kép bájtokat helyez egy meglévő oldalra. Page.ToImage() (lásd Conversion) a fordítást végzi — a teljes oldalt PNG bájtokká rendereli.


API Reference összefoglaló

Osztály/MetódusLeírás
Page.AddImage()Helyezze a kép bájtjait egy téglalapba az oldalon
AddImageOptionsOpciók AddImage() számára: opacity, format, tag, layer
Page.ImagesMinden már az oldalon lévő kép, metadata-only ImageInfo[]
ImageInfo.Decode() / Replace() / Remove()Olvasd a pixeladatokat, cseréld ki új bájtokra, vagy távolíts el egy képet
Document.Optimize()Csökkentsd a fájlméretet dokumentum-szintűen, opcionálisan a képek lecsökkentésével a images: { dpi, quality } segítségével

Lásd még:

 Magyar