Images
Images
هذه الصفحة تغطي وضع الصور النقطية على صفحة، وفحص الصور المدمجة بالفعل في مستند، وتقليل حجمها. لتصيير a 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. استدعِ Decode() على ImageInfo للحصول على بايتات العينة الخام، واستخدم 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()مسبقًا غير ضروري إذا كنت تحتاج فقط إلى الأبعاد أو مساحة اللون.- مرّر
formatصريحًا فيAddImageOptionsعندما تكون بايتات المصدر قادمة من تدفق أو مخزن مؤقت دون امتداد ملف موثوق لا يمكن استنتاجه. - استخدم
Document.Optimize({ images: { dpi, quality } })لتقليل حجم مستند يحتوي على العديد من الصور، بدلاً من فك تشفير كل صورة وإعادة إضافتها يدويًا. - مستطيل
Page.AddImage()يحدد الحجم الموضوع مباشرةً — قم بتكبير مستطيل الهدف وفقًا لنسبة أبعاد الصورة المصدر لتجنب تمدده.
المشكلات الشائعة
| المشكلة | السبب | الحل |
|---|---|---|
| تظهر الصورة مشوهة أو مضغوطة | الهدف rect الممرّر إلى AddImage() لا يتطابق مع نسبة أبعاد الصورة المصدر | احسب عرض/ارتفاع المستطيل من أبعاد الصورة المصدر نفسها |
Page.AddImage() يضع التنسيق الخطأ | لم يتمكن من تحديد تنسيق بايتات الصورة بشكل موثوق | مرّر format صريحًا في AddImageOptions |
| المستند أكبر بكثير مما كان متوقعًا بعد إضافة الصور | تم تضمين الصور بأعلى دقة وجودة | استدعِ 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 | كل صورة موجودة بالفعل على الصفحة، كـ ImageInfo[] فقط للبيانات الوصفية |
ImageInfo.Decode() / Replace() / Remove() | قراءة بيانات البكسل، استبدالها ببايتات جديدة، أو إزالة صورة |
Document.Optimize() | تقليل حجم الملف على مستوى المستند كله، مع إمكانية تقليل دقة الصور عبر images: { dpi, quality } |