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 }

انظر أيضاً

 العربية