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 را نشان می‌دهد. برای دریافت بایت‌های نمونهٔ خام آن، 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() (see Conversion) کار معکوس را انجام می‌دهد — رندر کل صفحه به بایت‌های PNG.


API Reference خلاصه

کلاس/متدتوضیح
Page.AddImage()بایت‌های تصویر را در یک مستطیل روی صفحه قرار دهید
AddImageOptionsگزینه‌ها برای AddImage(): opacity, format, tag, layer
Page.Imagesهر تصویر موجود در صفحه، به‌صورت فقط متادیتا ImageInfo[]
ImageInfo.Decode() / Replace() / Remove()داده‌های پیکسل را بخوانید، بایت‌های جدید را جایگزین کنید، یا یک تصویر را حذف کنید
Document.Optimize()اندازهٔ فایل را در سراسر سند کاهش دهید، در صورت تمایل تصاویر را از طریق images: { dpi, quality } با کاهش نمونه‌برداری کنید.

همچنین ببینید:

 فارسی