oxipng(1) General Commands Manual oxipng(1)

oxipng - بهینه‌ساز فشرده‌سازی بدون‌اتلاف PNG

oxipng [-o|--opt] [-r|--recursive] [--dir] [--out] [--stdout] [-p|--preserve] [-d|--dry-run] [-s ] [--strip] [--keep] [-a|--alpha] [-i|--interlace] [--scale16] [-v|--verbose]... [-q|--quiet] [-j|--json] [-f|--filters] [--fast] [--zc] [--nb] [--nc] [--np] [--ng] [--nx] [--nz] [--fix] [--force] [-z|--zopfli] [--zi] [--ziwi] [--brute-level] [--brute-lines] [--timeout] [--max-raw-size] [-t|--threads] [--sequential] [-h|--help] [-V|--version] <files>

یک بهینه‌ساز فشرده‌سازی بدون‌اتلاف PNG.

سطح بهینه‌سازی از پیش تنظیم‌شده را تعیین می‌کند. سطح پیش‌فرض ۲ نسبتاً سریع است و فشرده‌سازی مناسبی ارائه می‌دهد. سطوح پایین‌تر سریع‌تر هستند و سطوح بالاتر فشرده‌سازی بهتری ارائه می‌دهند، هرچند که بازدهی آن‌ها به‌مرور کاهش می‌یابد (بازده نزولی).


0 => --zc 5 -f 0,5 --fast
1 => --zc 10 -f 0,7 --fast
2 => --zc 11 -f 0,1,6,7 --fast
3 => --zc 11 -f 0,1,6,7,8,9 --fast --brute-level 1 --brute-lines 3
4 => --zc 12 -f 0,1,6,7,8,9 --fast --brute-level 1 --brute-lines 4
5 => --zc 12 -f 0,1,6,7,8,9 --brute-level 1 --brute-lines 8
6 => --zc 12 -f 0-9 --brute-level 5 --brute-lines 8
max => (نام مستعار پایدار برای بالاترین سطح)

مشخص کردن دستی یک گزینه فشرده‌سازی (zc، f و غیره)، صرف‌نظر از ترتیبی که آرگومان‌ها را وارد می‌کنید، مقدار موجود در پیش‌تنظیم بهینه‌سازی را بازنویسی خواهد کرد.

هنگامی که دایرکتوری‌ها به عنوان ورودی داده می‌شوند، ساختار درختی دایرکتوری را پیمایش کرده و تمام فایل‌های PNG یافت‌شده (فایل‌های با پسوند «.png» یا «.apng») را بهینه‌سازی می‌کند.
فایل(های) خروجی را در <directory> می‌نویسد. اگر دایرکتوری وجود نداشته باشد، ایجاد خواهد شد. توجه داشته باشید که در صورت استفاده همراه با '--recursive'، ساختار دایرکتوری فایل‌های ورودی حفظ نخواهد شد.
فایل خروجی را در <file> می‌نویسد.
خروجی را در stdout می‌نویسد.
در صورت امکان، مجوزها و برچسب‌های زمانی فایل را حفظ می‌کند.
هیچ فایلی را ذخیره نمی‌کند، تنها نتایج فشرده‌سازی را نمایش می‌دهد.
قطعاتی (chunks) که با ایمنی قابل حذف هستند را پاک می‌کند، معادل با '--strip safe'.
قطعات فراداده را حذف می‌کند، که در آن <mode> یکی از موارد زیر است:


safe => حذف تمام قطعات غیربحرانی، به جز موارد زیر:
cICP, iCCP, sRGB, pHYs, acTL, fcTL, fdAT
all => حذف تمام قطعات غیربحرانی
<list> => حذف قطعات مشخص‌شده در فهرست جداشده با کاما، مانند 'bKGD,cHRM'

هشدار: مقدار 'all' فایل‌های APNG را به PNGهای استاندارد تبدیل خواهد کرد.

لطفاً توجه داشته باشید که برخی قطعات در صورت بی‌اعتبار شدن در فرآیند بهینه‌سازی، لزوماً حذف خواهند شد:
bKGD, sBIT, hIST: در صورت تغییر نوع رنگ یا عمق بیت حذف می‌شوند. اگر به صراحت با `--keep` حفظ شوند، کاهش‌ها غیرفعال خواهند شد.
caBX, iDOT: به‌طور پیش‌فرض حذف می‌شوند. اگر به صراحت با `--keep` حفظ شوند، عملیات بهینه‌سازی لغو خواهد شد.

حالت پیش‌فرض زمانی که --strip ارسال نشود، حفظ تمام قطعاتی است که معتبر باقی می‌مانند.

تمام قطعات فراداده را به جز موارد مشخص‌شده در فهرست جداشده با کاما حذف می‌کند. مقدار ویژه 'display' شامل قطعاتی است که بر ظاهر تصویر تأثیر می‌گذارند، معادل '--strip safe'.

به عنوان مثال، '--keep eXIf,display' قطعات را حذف کرده و فقط eXIf و مواردی را که بر ظاهر تصویر تأثیر می‌گذارند نگه می‌دارد.

با تغییر مقادیر رنگ پیکسل‌های کاملاً شفاف، بهینه‌سازی بیشتری روی تصاویر دارای کانال آلفا انجام می‌دهد. این کار عموماً برای فشرده‌سازی بهتر توصیه می‌شود، اما توجه داشته باشید اگرچه این عمل «از نظر بصری بدون‌اتلاف» است، از نظر فنی یک تبدیل اتلافی محسوب می‌شود و ممکن است برای برخی کاربردها نامناسب باشد.
حالت درهم‌بافی PNG را تعیین می‌کند، که در آن <mode> یکی از موارد زیر است:


off => حذف درهم‌بافی از تمامی تصاویری که پردازش می‌شوند
on => اعمال درهم‌بافی Adam7 روی تمامی تصاویری که پردازش می‌شوند
keep => حفظ حالت درهم‌بافی فعلی هر تصویر

توجه داشته باشید که درهم‌بافی می‌تواند ۲۵ تا ۵۰ درصد به حجم تصویر بهینه‌شده اضافه کند. تنها در صورتی از آن استفاده کنید که مطمئن باشید مزایای آن در کاربرد شما بر هزینه‌هایش برتری دارد.

تصاویر دارای ۱۶ بیت به ازای هر کانال را اجباراً به ۸ بیت به ازای هر کانال کاهش می‌دهد. این یک عملیات اتلافی است اما زمانی که به عمق بالاتر نیازی ندارید می‌تواند باعث صرفه‌جویی چشمگیری شود. کاهش از طریق مقیاس‌بندی مقادیر صورت می‌گیرد به‌طوری که مثلاً 0x00FF به جای 0x00 به 0x01 کاهش می‌یابد.

بدون این پرچم، عمق بیت تصاویر ۱۶ بیتی تنها در صورتی کاهش می‌یابد که بتوان این کار را بدون اتلاف انجام داد.

نمایش اطلاعات به تفکیک هر فایل (برای جزئیات بیشتر چندین بار استفاده شود)
تمام پیام‌های خروجی را بی‌صدا می‌کند
نتایج را در قالب JSON چاپ می‌کند
آزمون‌های فشرده‌سازی را با هر یک از انواع فیلتر داده‌شده انجام می‌دهد. می‌توانید یک فهرست جداشده با کاما یا محدوده‌ای از مقادیر را مشخص کنید. برای نمونه '-f 0-3' معادل '-f 0,1,2,3' است.

فیلترهای دلتای PNG (اعمال فیلتر یکسان روی هر سطر)
0 => None (توصیه می‌شود همیشه این فیلتر گنجانده شود)
1 => Sub
2 => Up
3 => Average
4 => Paeth

راهبردهای اکتشافی (تلاش برای یافتن بهترین فیلتر دلتا برای هر سطر)
5 => MinSum کمترین مجموع تفاضل‌های قدرمطلق
6 => Entropy کمترین آنتروپی شانون
7 => Bigrams کمترین تعداد دوتایی‌های متمایز
8 => BigEnt کمترین آنتروپی شانون دوتایی‌ها
9 => Brute کمترین حجم فشرده‌شده (کُند)

مقدار پیش‌فرض به سطح بهینه‌سازی از پیش تنظیم‌شده بستگی دارد.

یک ارزیابی فشرده‌سازی سریع از هر فیلتر فعال‌شده را اجرا می‌کند که در ادامه با یک آزمون فشرده‌سازی اصلی منفرد روی بهترین نتیجه همراه خواهد بود. توجه داشته باشید که این ویژگی به‌طور پیش‌فرض فعال است و تنها در سطح ۵ یا بالاتر غیرفعال می‌شود.
سطح فشرده‌سازی Deflate (بین ۰ تا ۱۲) برای آزمون‌های فشرده‌سازی اصلی. سطوح موجود در اینجا توسط کتابخانه فشرده‌سازی libdeflate تعریف شده‌اند.

مقدار پیش‌فرض به سطح بهینه‌سازی از پیش تنظیم‌شده بستگی دارد.

عمق بیت را تغییر نمی‌دهد
نوع رنگ را تغییر نمی‌دهد
تصویر را به حالت پالت‌دار (ایندکس‌شده) تبدیل نمی‌کند و پالت رنگ موجود را تغییر نمی‌دهد.
تصویر را به حالت مقیاس خاکستری یا برعکس تبدیل نمی‌کند
هیچ تبدیلی انجام نمی‌دهد و به‌طور پیش‌فرض درهم‌بافی‌زدایی نمی‌کند.
قطعه IDAT را دوباره فشرده نمی‌کند مگر اینکه بر اثر تبدیلات لازم باشد. فشرده‌سازی مجدد سایر قطعات فشرده (مانند iCCP) نیز غیرفعال خواهد شد. توجه داشته باشید که ترکیب '--nx' و '--nz' تمامی بهینه‌سازی‌ها را به‌طور کامل غیرفعال می‌کند.
بررسی صحت چکسام (checksum) قطعات PNG را انجام نمی‌دهد. این کار ممکن است اجازه دهد برخی فایل‌های خطادار با موفقیت پردازش شوند. خروجی همیشه دارای چکسام صحیح خواهد بود.
خروجی را می‌نویسد حتی اگر بزرگ‌تر از فایل ورودی باشد
برای آزمون‌های اصلی فشرده‌سازی از فشرده‌ساز بسیار کُندتر اما قوی‌تر Zopfli استفاده می‌کند. استفاده از آن به همراه '-o max' و '--fast' پیشنهاد می‌شود.
تعداد تکرارها برای فشرده‌سازی Zopfli را مشخص می‌کند. استفاده از تکرارهای کمتر ممکن است فشرده‌سازی را برای فایل‌های بزرگ سرعت ببخشد. این گزینه نیازمند فعال بودن '--zopfli' است.
فشرده‌سازی Zopfli را پس از این تعداد تکرار بدون بهبود، متوقف می‌کند. از این گزینه همراه با یک مقدار بالا برای '--zi' استفاده کنید تا در زمانی معقول فشرده‌سازی بهتری به دست آورید.
سطح فشرده‌سازی libdeflate را برای استفاده با راهبرد فیلتر Brute تعیین می‌کند. مقادیر معقول ۱ تا ۵ هستند. مقادیر بالاتر لزوماً بهتر نیستند.
تعداد سطرهایی را که با راهبرد فیلتر Brute به یک‌باره فشرده می‌شوند مشخص می‌کند. مقادیر معقول ۲ تا ۱۶ هستند. مقادیر بالاتر لزوماً بهتر نیستند.
حداکثر زمان مجاز به ثانیه برای صرف شدن روی بهینه‌سازی‌ها. Oxipng پیش از هر تبدیل یا آزمون فشرده‌سازی مهلت زمانی را بررسی می‌کند و در صورت اتمام آن، از ادامه تلاش برای بهینه‌سازی فایل صرف‌نظر خواهد کرد. توجه داشته باشید که این کار عملیات در حال اجرا را متوقف نمی‌کند، بنابراین در حال حاضر برای فایل‌های حجیم با سطوح فشرده‌سازی بالا اثربخشی محدودی دارد.
حداکثر اندازه مجاز برای تصویر ورودی. اگر داده‌های تصویر خام و فشرده‌نشده (یا اندازه فایل) از این مقدار فراتر رود، پردازش آن نادیده گرفته می‌شود. این گزینه برای محدود کردن مصرف حافظه یا اجتناب از پردازش‌های طولانی روی تصاویر بزرگ مفید است. مقدار می‌تواند با پسوند واحد مانند k، KB، m، MB و غیره مشخص شود.

اندازه غیرفشرده یک تصویر تقریباً برابر است با width * height * bit-depth / 8. برای مثال، یک تصویر ۱۹۲۰ در ۱۰۸۰ با عمق رنگ ۲۴ بیت تقریباً ۶ مگابایت خواهد بود.

حداکثر تعداد رشته‌های (threads) مورد استفاده را تنظیم می‌کند. Oxipng از چندرشتگی برای ارزیابی موازی چندین بهینه‌سازی روی یک فایل و همچنین پردازش هم‌زمان چندین فایل استفاده می‌کند. در صورت نیاز به محدودسازی مصرف حافظه یا پردازنده می‌توانید آن را روی مقدار کمتری تنظیم کنید.

[پیش‌فرض: تعداد پردازنده‌های منطقی]

پردازش چندین فایل را به جای حالت موازی، به‌صورت متوالی انجام می‌دهد. اگر به قطعیت در ترتیب پردازش نیاز دارید از این گزینه استفاده کنید. توجه داشته باشید در صورت استفاده از '--threads 1' نیازی به این گزینه نیست.
راهنما را چاپ می‌کند (برای مشاهده خلاصه از '-h' استفاده کنید)
نسخه را چاپ می‌کند
<files>
فایل(های) مورد نظر برای فشرده‌سازی (از '-' برای stdin استفاده کنید)

v10.2.1

Joshua Holmer <jholmer.in@gmail.com>

2026-09-02 oxipng 10.2.1