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.Imagescsak a metaadatokat olvassa — minden kép teljes pixeltartalmának dekódolása aDecode()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 aAddImageOptions-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éma | Ok | Javítás |
|---|---|---|
| A kép nyúlt vagy összenyomottnak tűnik | A rect cél, amelyet a AddImage() kapott, nem egyezik a forráskép képarányával | Szá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 el | A 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ódus | Leírás |
|---|---|
Page.AddImage() | Helyezze a kép bájtjait egy téglalapba az oldalon |
AddImageOptions | Opciók AddImage() számára: opacity, format, tag, layer |
Page.Images | Minden 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 |