| OPTIPNG(1) | OptiPNG Manual | OPTIPNG(1) |
نام (NAME)
optipng - بهینهسازی فایلهای Portable Network Graphics (PNG)
خلاصه دستور (SYNOPSIS)
optipng [<options...>] [--] <files...>
توضیحات (DESCRIPTION)
برنامه OptiPNG تلاش میکند فایلهای PNG را بهینهسازی کند؛ یعنی اندازه آنها را بدون از دست رفتن اطلاعات معنایی به کمترین میزان کاهش دهد. افزون بر این، این برنامه مجموعهای از عملکردهای کمکی مانند بررسی یکپارچگی، بازیابی فراداده (metadata) و تبدیل تصاویر نقطهای (pixmap) به PNG را انجام میدهد.
موفقیت تلاشهای بهینهسازی تضمین نمیشود. فایلهای معتبر PNG که نتوانند توسط این برنامه بهینهسازی شوند، بهطور معمول دستنخورده باقی میمانند؛ اندازه آنها افزایش نخواهد یافت. کاربر میتواند درخواست کند که این رفتار پیشفرض نادیده گرفته شود.
فایلها (FILES)
فایلهای ورودی، تصاویر شطرنجی (raster) هستند که یا در قالب PNG (قالب بومی) یا در یک قالب خارجی کدگذاری شدهاند. قالبهای خارجی که در حال حاضر پشتیبانی میشوند عبارتند از GIF، BMP، PNM و TIFF.
برنامه OptiPNG هر فایل تصویری دادهشده در خط فرمان را بهصورت زیر پردازش میکند:
تلاش میکند فایل دادهشده را درجا (in-place) بهینهسازی کند. اگر بهینهسازی موفقیتآمیز باشد یا اگر گزینه -force فعال شده باشد، فایل اصلی با نسخه بهینهشده آن جایگزین میشود. در هر صورت، اگر گزینه -keep فعال باشد، از فایل اصلی نسخه پشتیبان تهیه خواهد شد.
یک نسخه بهینهشده PNG از فایل دادهشده میسازد. نام فایل خروجی با استفاده از نام فایل اصلی و پسوند .png ساخته خواهد شد.
به غیر از قواعد ذکرشده در بالا، هیچ فایل موجودی رونویسی نمیشود، مگر اینکه گزینه -clobber فعال باشد.
گزینهها (OPTIONS)
گزینههای عمومی (General options)
-?, -h, -help
-backup, -keep
-clobber
تحت این گزینه، در صورتی که گزینه -backup فعال نباشد، پشتیبانهای قدیمی فایلهای رونویسیشده حذف خواهند شد.
-dir directory
-fix
برنامه تلاش معقولی برای بازیابی بیشترین داده ممکن بدون افزایش حجم فایل خروجی به کار خواهد گرفت، اما موفقیت بهطور کلی قابل تضمین نیست. این برنامه ممکن است حتی اندازه فایل را افزایش دهد، برای نمونه با بازسازی دادههای حیاتی از دسترفته. تحت این گزینه، یکپارچگی داده بر اندازه فایل اولویت دارد.
هنگامی که این گزینه استفاده نشود، فایلهای ورودی نامعتبر پردازشنشده رها میشوند.
-force
این گزینه تصمیم برنامه مبنی بر ننوشتن چنین فایلی را نادیده میگیرد؛ به عنوان مثال زمانی که ورودی PNG بهصورت دیجیتالی امضا شده باشد (با استفاده از dSIG)، یا هنگامی که خروجی PNG بزرگتر از ورودی PNG شود.
-out file
خط فرمان باید دقیقاً حاوی یک فایل ورودی باشد.
-preserve
-quiet, -silent
-simulate
-v
-verbose
-version
--
-o level
سطح بهینهسازی 0 مجموعهای از عملیات بهینهسازی را فعال میکند که به کمترین پردازش نیاز دارند. هیچ تغییری در مشخصههای تصویر مانند عمق بیت یا نوع رنگ ایجاد نخواهد شد، و فشردهسازی مجددی روی جریانهای داده IDAT موجود انجام نمیشود.
سطح بهینهسازی 1 یک آزمون منفرد فشردهسازی IDAT را فعال میکند. آزمون انتخابشده موردی است که OptiPNG تصور میکند ممکن است مؤثرترین باشد.
سطوح بهینهسازی 2 و بالاتر چندین آزمون فشردهسازی IDAT را فعال میکنند؛ هر چه سطح بالاتر باشد، تعداد آزمونها بیشتر خواهد بود.
رفتار و مقدار پیشفرض این گزینه ممکن است در نسخههای مختلف برنامه تغییر کند. از گزینه -h برای مشاهده جزئیات مربوط به نسخه خاص خود استفاده کنید.
-f filters
آرگومان filters به صورت یک محدوده (مانند -f0-5) مشخص میشود، و مقدار پیشفرض filters به سطح بهینهسازی تعیینشده توسط گزینه -o بستگی دارد.
مقادیر فیلتر 0، 1، 2، 3 و 4 نشاندهنده فیلترگذاری ایستا هستند و به ترتیب با کدهای استاندارد فیلتر PNG (None، Left، Up، Average و Paeth) مطابقت دارند. مقدار فیلتر 5 نشاندهنده فیلترگذاری تطبیقی است که عملکرد آن توسط کتابخانه libpng(3) مورد استفاده OptiPNG تعریف میشود.
-full
-i type
اگر نوع درهمبافی 0 انتخاب شود، تصویر خروجی بدون درهمبافی (یعنی پویش پیشرونده) خواهد بود. اگر نوع درهمبافی 1 انتخاب شود، تصویر خروجی با استفاده از روش Adam7 درهمبافته خواهد شد.
به طور پیشفرض، خروجی همان نوع درهمبافی ورودی را خواهد داشت.
-nb
-nc
-np
-nx
-nz
عملیات بهینهسازی IDAT که نیازی به بازکدگذاری ندارند (مانند الحاق قطعات IDAT) همچنان انجام میشوند.
این گزینه فقط بر روی فایلهای ورودی PNG تأثیر دارد.
-zc levels
آرگومان levels به صورت یک محدوده (مانند -zc6-9) مشخص میشود، و مقدار پیشفرض levels به سطح بهینهسازی تعیینشده توسط گزینه -o بستگی دارد.
عملکرد این گزینه توسط کتابخانه zlib(3) مورد استفاده OptiPNG تعریف میشود.
-zm levels
آرگومان levels به صورت یک محدوده (مانند -zm8-9) مشخص میشود، و مقدار پیشفرض levels به سطح بهینهسازی تعیینشده توسط گزینه -o بستگی دارد.
عملکرد این گزینه توسط کتابخانه zlib(3) مورد استفاده OptiPNG تعریف میشود.
-zs strategies
آرگومان strategies به صورت یک محدوده (مانند -zs0-3) مشخص میشود، و مقدار پیشفرض strategies به سطح بهینهسازی تعیینشده توسط گزینه -o بستگی دارد.
عملکرد این گزینه توسط کتابخانه zlib(3) مورد استفاده OptiPNG تعریف میشود.
-zw size
آرگومان size میتواند بر حسب بایت (مانند 16384) یا کیلوبایت (مانند 16k) مشخص شود. مقدار پیشفرض size روی کمترین اندازه پنجرهای تنظیم شده است که خروجی IDAT آن به کوچکی خروجی حاصل از مقدار 32768 باشد.
عملکرد این گزینه توسط کتابخانه zlib(3) مورد استفاده OptiPNG تعریف میشود.
-snip
بسته به قالب ورودی، این ممکن است تصویر نخست یا مرتبطترین (برای نمونه بزرگترین) تصویر باشد.
-strip objects
فرادادهٔ PNG اطلاعات ذخیرهشده در هر قطعهٔ (chunk) کمکی به جز tRNS است. (tRNS نمایانگر کانال آلفا است، که حتی اگر هنگام رندر کردن نادیده گرفته شود، همچنان یک کانال تصویر مناسب در فضای رنگی RGBA به شمار میرود.)
تنها گزینهای که در حال حاضر پشتیبانی میشود -strip all است.
نکات (Notes)
گزینهها میتوانند به هر ترتیبی (بهجز --)، پیش از نام پروندهها، پس از آنها، یا بهصورت متناوب با آنها بیایند. نام گزینهها به بزرگ و کوچکی حروف حساس نیست و میتوان آنها را به کوتاهترین پیشوند یکتایشان خلاصه کرد.
برخی از گزینهها ممکن است آرگومانهایی داشته باشند که پس از نام گزینه میآیند و با فاصله یا علامت مساوی (=) جدا میشوند. اگر آرگومان گزینه یک عدد یا یک مجموعهبازه (rangeset) باشد، میتوان جداکننده را حذف کرد. برای نمونه:
optipng -out newfile.png <=> optipng -out=newfile.png optipng -o3 <=> optipng -o 3 <=> optipng -o=3 optipng -f0,3-5 <=> optipng -f 0,3-5 <=> optipng -f=0,3-5
آرگومانهای مجموعهبازه تجمعی هستند. برای نمونه:
optipng -f0 -f3-5 <=> optipng -f0,3-5 optipng -zs0 -zs1 -zs2,3 <=> optipng -zs0-3
توضیحات تکمیلی (EXTENDED DESCRIPTION)
الگوریتم بهینهسازی PNG از مراحل زیر تشکیل شده است:
لازم نیست همهٔ مراحل بالا اجرا شوند. رفتار برنامه به پروندههای ورودی واقعی و گزینههای کاربر بستگی دارد.
مرحلهٔ ۱ میتواند با استفاده از گزینههای عدم کاهش شامل -nb، -nc، -np و -nx سفارشیسازی شود. مرحلهٔ ۲ میتواند از طریق گزینهٔ -o سفارشیسازی شده و با استفاده از گزینههای -zc، -zm، -zs و -zw بهدقت تنظیم شود. مرحلهٔ ۳ همیشه اجرا میشود. مرحلهٔ ۴ تنها زمانی اجرا میشود که یک IDAT جدید در حال ایجاد باشد، و میتواند از طریق گزینهٔ -zw بهدقت تنظیم شود.
بهطور کلی انتظار نمیرود که جستجوهای بسیار جامع بهبود قابلتوجهی در نسبت فشردهسازی ایجاد کنند، و تنها به کاربران پیشرفته توصیه میشوند.
مثالها (EXAMPLES)
optipng file.png # سرعت پیشفرض optipng -o5 file.png # کند optipng -o7 file.png # بسیار کند
گزارش باگها (BUGS)
کاهشهای بدونافت تصویر بهطور کامل پیادهسازی نشدهاند. (این موضوع بر یکپارچگی پروندههای خروجی تأثیری ندارد.) بخشهای پیادهسازینشده عبارتند از:
در حال حاضر کدگذاری تصاویری که مجموع اندازهٔ IDAT آنها از ۲ گیگابایت بیشتر باشد، پشتیبانی نمیشود.
پشتیبانی از TIFF به تصاویر فشردهنشده و سازگار با PNG (شامل مقیاس خاکستری، RGB و RGBA) محدود است.
فرادادهها از قالبهای تصویر خارجی وارد نمیشوند.
هیچ پشتیبانیای از لولهها (pipes)، جریانها (streams)، صفتهای پروندهٔ گسترشیافته یا فهرستهای کنترل دسترسی وجود ندارد..SH "همچنین ببینید (SEE ALSO)"
استانداردها (STANDARDS)
فایلهای تولیدشده توسط OptiPNG با جدیدترین استاندارد PNG («نسخه دوم PNG») و همچنین جدیدترین پیشنویس استاندارد PNG («نسخه سوم PNG») سازگار هستند.
W3C Recommendation 10 November 2003; ISO/IEC IS 15948:2003 (E).
https://www.w3.org/TR/2003/REC-PNG-20031110
W3C Proposed Recommendation 15 May 2025.
https://www.w3.org/TR/2025/PR-png-3-20250515
نویسندگان (AUTHORS)
برنامه OptiPNG توسط Cosmin Truta نوشته شده است و نگهداری میشود.
این صفحه راهنما در ابتدا توسط Nelson A. de Oliveira برای پروژه Debian نوشته شده بود. این راهنما بعداً توسط Cosmin Truta بهروزرسانی شد و اکنون بخشی از توزیع OptiPNG است.
| 2025-05-20 | optipng 7.9.1 |