Images
Images
यह पृष्ठ पृष्ठ पर रास्टर छवियों को रखने, दस्तावेज़ में पहले से एम्बेड की गई छवियों की जांच करने, और उनके आकार को कम करने को कवर करता है। रेंडरिंग के लिए page एक छवि में, देखें Conversion.
एक छवि को एम्बेड करना
Page.AddImage() पृष्ठ पर एक पिक्सेल-सटीक आयत में JPEG, PNG, BMP, या TIFF छवि बाइट्स रखता है।
// 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 opacity को स्वीकार करता है, बाइट्स से पता नहीं चल पाने पर एक स्पष्ट format, एक tag (एक StructElement जिससे टैग किए गए दस्तावेज़ में छवि संलग्न की जा सके), और वैकल्पिक सामग्री के लिए एक layer।
एम्बेडेड छवियों की जाँच
Page.Images पृष्ठ पर पहले से मौजूद प्रत्येक छवि को ImageInfo[] के रूप में सूचीबद्ध करता है, बिना किसी पिक्सेल डेटा को डिकोड किए — प्रत्येक प्रविष्टि Width, Height, Bits, ColorSpace, और Filter प्रकट करता है। ImageInfo पर Decode() को कॉल करके उसके कच्चे सैंपल बाइट्स प्राप्त करें, Replace() को कॉल करके स्थान पर नई छवि डेटा बदलें, या Remove() को कॉल करके इसे पृष्ठ से हटाएँ।
for (const img of page.Images) {
console.log(img.Width, img.Height, img.ColorSpace, img.Filter);
}छवियों को अनुकूलित करना
Document.Optimize() पूरी दस्तावेज़ में फ़ाइल आकार कम करता है; साथ ही images विकल्प (OptimizeImageOptions, जिसमें dpi और quality फ़ील्ड हैं) पास करें ताकि एम्बेडेड छवियों को भी उसी पास में डाउनसैंपल और पुनःएन्कोड किया जा सके।
const report = doc.Optimize({ images: { dpi: 150, quality: 80 } });सुझाव और सर्वोत्तम प्रथाएँ
Page.Imagesकेवल मेटाडेटा पढ़ता है — यदि आपको केवल आयाम या रंग स्थान चाहिए तोDecode()के साथ प्रत्येक छवि के पूर्ण पिक्सेल डेटा को पहले से डिकोड करना अनावश्यक है।- जब स्रोत बाइट्स किसी स्ट्रीम या बफ़र से आती हैं और विश्वसनीय फ़ाइल एक्सटेंशन नहीं होता जिसे स्निफ़ किया जा सके, तो
AddImageOptionsमें एक स्पष्टformatपास करें। - कई छवियों वाले दस्तावेज़ को संकुचित करने के लिए
Document.Optimize({ images: { dpi, quality } })का उपयोग करें, बजाय प्रत्येक को मैन्युअल रूप से डिकोड करके पुनः जोड़ने के। Page.AddImage()’s आयताकार सीधे रखे गए आकार को सेट करता है — इसे खींचने से बचने के लिए लक्ष्य आयत को स्रोत छवि के अपने अनुपात के अनुसार स्केल करें।
सामान्य समस्याएँ
| समस्या | कारण | समाधान |
|---|---|---|
| छवि खिंची हुई या संकुचित दिख रही है | टार्गेट rect जिसे AddImage() को पास किया गया है, स्रोत छवि के अनुपात से मेल नहीं खाता | आयत की चौड़ाई/ऊँचाई स्रोत छवि के अपने आयामों से गणना करें |
Page.AddImage() गलत फ़ॉर्मेट रखता है | छवि बाइट्स का फ़ॉर्मेट भरोसेमंद रूप से पता नहीं लगाया जा सका | AddImageOptions में एक स्पष्ट format पास करें |
| छवियों को जोड़ने के बाद दस्तावेज़ अपेक्षा से कहीं अधिक बड़ा है | छवियों को पूर्ण रिज़ॉल्यूशन और गुणवत्ता के साथ एम्बेड किया गया था | डाउन्सैंपल और री-एन्कोड करने के लिए Document.Optimize({ images: { dpi, quality } }) को कॉल करें |
FAQ
मैं पृष्ठ पर एक छवि कैसे रखूँ?
page.AddImage(imageBytes, rect) को कॉल करें, जहाँ rect पेज-स्पेस पॉइंट्स में एक [x0, y0, x1, y1] आयत है।
मैं पृष्ठ पर पहले से मौजूद छवियों की सूची बिना उन्हें डिकोड किए कैसे प्राप्त करूँ?
page.Images पढ़ें — एक ImageInfo[] जो प्रत्येक छवि के लिए Width, Height, ColorSpace, और Filter उजागर करता है, बिना पिक्सेल डेटा को डिकोड किए।
क्या मैं दस्तावेज़ के फ़ाइल आकार को उसकी छवियों को संपीड़ित करके कम कर सकता हूँ?
हाँ — Document.Optimize({ images: { dpi, quality } }) को कॉल करें, जो एंबेडेड छवियों को डाउनसैंपल और पुनः एन्कोड करता है, दस्तावेज़-व्यापी ऑप्टिमाइज़ेशन पास के हिस्से के रूप में।
एक छवि को एम्बेड करने और पृष्ठ को छवि के रूप में रेंडर करने में क्या अंतर है?
Page.AddImage() एक मौजूदा पृष्ठ पर रास्टर इमेज बाइट्स रखता है। Page.ToImage() (देखें Conversion) इसके विपरीत — पूरे पृष्ठ को PNG बाइट्स में रेंडर करता है।
API Reference सारांश
| क्लास/मेथड | विवरण |
|---|---|
Page.AddImage() | पृष्ठ पर एक आयत में इमेज बाइट्स रखें |
AddImageOptions | विकल्प AddImage() के लिए: opacity, format, tag, layer |
Page.Images | पेज पर पहले से मौजूद हर छवि, केवल metadata-only ImageInfo[] |
ImageInfo.Decode() / Replace() / Remove() | पिक्सेल डेटा पढ़ें, नए बाइट्स बदलें, या छवि को हटाएँ |
Document.Optimize() | दस्तावेज़-व्यापी फ़ाइल आकार कम करें, वैकल्पिक रूप से images: { dpi, quality } के माध्यम से छवियों को डाउनसैंपल करें |