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 } با کاهش نمونهبرداری کنید. |