| JPEGOPTIM(1) | General Commands Manual | JPEGOPTIM(1) |
نام (NAME)
jpegoptim - ابزاری برای بهینهسازی/فشردهسازی فایلهای JPEG/JFIF.
خلاصه دستور (SYNOPSIS)
jpegoptim [ گزینهها ] [ نامفایلها ]
توضیحات (DESCRIPTION)
jpegoptim برای بهینهسازی/فشردهسازی فایلهای jpeg استفاده میشود. این برنامه از بهینهسازی بدون اتلاف (lossless) پشتیبانی میکند که بر پایهٔ بهینهسازی جدولهای هافمن (Huffman) است، و همچنین از بهینهسازی به اصطلاح «با اتلاف» (lossy) که در آن افزون بر بهینهسازی جدولهای هافمن، کاربر میتواند حد بالایی را برای کیفیت تصویر مشخص کند.
توجه! بهطور پیشفرض jpegoptim فایلهای ورودی را (در صورت بهینهسازی شدن) تغییر میدهد؛ برای دستنخورده ماندن فایلهای اصلی از گزینهٔ -d برای تعیین دایرکتوری جایگزین جهت ذخیرهٔ فایلهای بهینهشده استفاده کنید.
تنها فایلهای عادی بهینهسازی میشوند (پیوندهای نمادین و فایلهای ویژه نادیده گرفته میشوند). همچنین هرگونه پیوند سخت (hard link) دیگر به فایلی که در حال بهینهسازی است (مانند مواردی که با link(2) ایجاد شدهاند) دستنخورده باقی میماند.
گزینهها (OPTIONS)
گزینهها میتوانند گزینههای سنتی تکحرفی استاندارد POSIX یا گزینههای بلند به سبک GNU باشند. گزینههای سبک POSIX با یک ``-'', تنها و گزینههای بلند GNU با ``--'' آغاز میشوند.
گزینههای ارائهشده توسط jpegoptim شامل موارد زیر است:
- -d<path>, --dest=<path>
- تعیین دایرکتوری مقصد جایگزین برای ذخیرهٔ فایلهای بهینهشده (پیشفرض، بازنویسی روی فایلهای اصلی است). لطفاً توجه داشته باشید فایلهایی که تغییری نکردهاند به دایرکتوری مقصد افزوده نخواهند شد. این بدان معناست که اگر فایل مبدأ قابل فشردهسازی نباشد، هیچ فایلی در مسیر مقصد ایجاد نخواهد شد.
- -f, --force
- اجبار به بهینهسازی، حتی اگر اندازهٔ فایل خروجی بزرگتر از فایل اصلی شود.
- -h, --help
- نمایش اطلاعات مختصری از نحوهٔ استفاده و خروج.
- -m<quality>, --max=<quality>
- تعیین ضریب
بیشینهٔ
کیفیت
تصویر
(غیرفعالسازی
حالت
بهینهسازی
بدون اتلاف
که بهطور
پیشفرض
فعال است).
این گزینه
کیفیت آن
دسته از
فایلهای
مبدأ را که
با تنظیمات
کیفیت
بالاتر
ذخیره شده
بودند کاهش
میدهد؛ در
حالی که
فایلهایی
که از پیش
کیفیت
پایینتری
دارند، با
استفاده از
روش
بهینهسازی
بدون اتلاف
فشرده
خواهند شد.
مقادیر معتبر برای پارامتر کیفیت عبارتند از: 0 - 100
- -n, --noaction
- فایلها را واقعاً بهینهسازی نمیکند، صرفاً نتایج را چاپ میکند.
- -S<size>, --size=<size>
- تلاش برای بهینهسازی فایل تا اندازهٔ مشخصشده (حالت بهینهسازی بدون اتلاف را غیرفعال میکند). اندازهٔ هدف یا بر حسب کیلوبایت (1 - n) یا به صورت درصدی (1% - 99%) از اندازهٔ فایل اصلی تعیین میشود.
- -T<threshold>, --threshold=<threshold>
- دستنخورده
نگه داشتن
فایل در
صورتی که
میزان کاهش
حجم حاصل از
فشردهسازی
کمتر از
مقدار
آستانه (%)
باشد.
مقادیر معتبر برای آستانه عبارتند از: 0 - 100
- -w<max>, --workers=<max>
- تنظیم بیشینهٔ تعداد فرایندهای موازی برای اجرا (پیشفرض 1 است).
- -b, --csv
- چاپ اطلاعات پیشرفت در قالب CSV.
- -o, --overwrite
- بازنویسی روی فایل مقصد حتی در صورت وجود داشتن آن (هنگام استفاده از گزینهٔ -d).
- -p, --preserve
- حفظ زمانهای تغییر فایل (modification times).
- -P, --preserve-perms
- حفظ مجوزهای دسترسی فایل (مالک/گروه) با بازنویسی مستقیم روی فایل اصلی. این شیوه کمی ناامنتر از حالت عملکرد پیشفرض است (که در آن فایل جدید ابتدا به عنوان فایل موقت ذخیره شده و سپس روی فایل اصلی تغییر نام داده میشود). در این حالت یک نسخهٔ پشتیبان از فایل اصلی با پسوند .jpegoptim.bak ایجاد میشود و این فایل پس از جایگزینی موفقیتآمیز فایل اصلی حذف خواهد شد. توجه! در صورت اجرای jpegoptim با کاربر ریشه (root)، عموماً نیازی به استفاده از این گزینه نیست؛ چرا که jpegoptim هنگام اجرا توسط root در حالت پیشفرض قادر به حفظ مجوزهای دسترسی فایل است.
- -q, --quiet
- حالت بیصدا.
- -r, --retry
- تلاش مجدد و
بازگشتی
برای
فشردهسازی
تا زمانی که
اندازهٔ
فایل خروجی
دیگر
کوچکتر
نشود. این
کار
میتواند
منجر به چند
بایت کاهش
بیشتر در
اندازهٔ
فایل خروجی
شود، اما به
قیمت صرف
زمان
محاسباتی
بسیار
بیشتر.
توجه! این گزینه تنها در ترکیب با گزینههای -m (--max) یا -S (--size) مؤثر است.
- -t, --totals
- چاپ مجموع آمار پس از پردازش تمام فایلها.
- -v, --verbose
- فعال کردن حالت پرگو (نمایش گزارش کامل و با جزئیات).
- --auto-mode
- انتخاب بین حالت پیشرونده (progressive) و غیرپیشرونده (non-progressive) بر پایهٔ اینکه کدامیک فایل خروجی کوچکتری تولید میکند. بهطور پیشفرض، حالت تصویر (پیشرونده یا غیرپیشرونده) حفظ میشود.
- --all-normal
- اجبار تمام فایلهای خروجی به غیرپیشرونده بودن. در صورت استفاده به همراه گزینهٔ --force میتوان از آن برای تبدیل تمام فایلهای ورودی به JPEGهای غیرپیشرونده استفاده کرد.
- --all-progressive
- اجبار تمام فایلهای خروجی به پیشرونده بودن. در صورت استفاده به همراه گزینهٔ --force میتوان از آن برای تبدیل تمام فایلهای ورودی عادی (غیرپیشرونده) به فایلهای پیشرونده استفاده کرد.
- --all-arith
- اجبار تمام فایلهای خروجی به استفاده از کدگذاری حسابی (Arithmetic Coding). این گزینه آزمایشی است و تنها در صورتی در دسترس خواهد بود که jpegoptim با فعال بودن پشتیبانی از Arithmetic Coding کامپایل شده باشد.
- --all-huffman
- اجبار تمام فایلهای خروجی به استفاده از کدگذاری هافمن (سنتی). این گزینه آزمایشی است و تنها در صورتی در دسترس خواهد بود که jpegoptim با فعال بودن پشتیبانی از Arithmetic Coding کامپایل شده باشد.
- --nofix
- صرفنظر کردن از پردازش هر فایل ورودی که در هنگام واسازی (decompression) دارای خطا یا هشدار باشد. بهطور پیشفرض jpegoptim تلاش میکند هر فایلی را که قادر به واسازی آن است بهینهسازی کند، حتی اگر واسازی هشدار ایجاد کند. این امر برخی از تصاویر JPEG (خراب) را بهطور خودکار «ترمیم» میکند. اگر این رفتار مورد نظر نیست، میتوان از این گزینه استفاده کرد تا jpegoptim از پردازش هر فایل ورودی حاوی خطا صرفنظر کند.
- --save-extra
- ذخیرهٔ دادههای اضافی پس از پایان تصویر JPEG در فایل ورودی (پیشفرض، دور ریختن هرگونه دادهٔ اضافی موجود پس از پایان تصویر است). این ویژگی ممکن است زمانی مفید باشد که تصویر JPEG شامل پسوندهای غیراستانداردی باشد که بخشی از ساختار فرمت تصویر JPEG نیستند. توجه! در صورتی که تصویر JPEG ورودی از ورودی استاندارد (stdin) خوانده شود، این گزینه کار نخواهد کرد.
- --stdout
- ارسال تصویر خروجی به خروجی استاندارد. توجه داشته باشید که اگر بهینهسازی فایلی کوچکتر از فایل ورودی ایجاد نکند، تصویر اصلی بدون تغییر عبور داده میشود (به استثنای دادههای اضافی پس از تصویر JPEG که دور ریخته خواهند شد).
- --stdin
- خواندن تصویر ورودی از ورودی استاندارد و ارسال خروجی به خروجی استاندارد (هنگام استفاده از این گزینه، --stdout فرض میشود). وقتی از این گزینه استفاده میشود، تنها یک تصویر از ورودی استاندارد خوانده خواهد شد. هرگونه فایل ورودی (دیگر) مشخصشده در خط فرمان نادیده گرفته میشود. توجه داشته باشید اگر فایل ورودی '-' در خط فرمان مشاهده شود، ورودی استاندارد نیز در نظر گرفته خواهد شد.
- --files-stdin
- خواندن نام فایلهای مورد پردازش از ورودی استاندارد؛ یک نامفایل در هر خط.
- --files-from=<filename>
- خواندن نام فایلهای مورد پردازش از یک فایل؛ یک نامفایل در هر خط..SH "گزینههای متادیتا (METADATA OPTIONS)"
بهطور پیشفرض jpegoptim متادیتای معمول (نشانگرهای JPEG) را حفظ کرده و سایر موارد (نشانگرهای ناشناخته) را دور میریزد.
نشانگرهای
زیر بهطور
پیشفرض
نگهداری
میشوند:
- EXIF
- IPTC
- ICC
- XMP
- COM
(نشانگرهای
توضیح یا Comment
در JPEG)
نشانگر JFIF در طول فرایند (توسط libjpeg) بازتولید خواهد شد (این رفتار قابل تغییر نیست). با این حال، نشانگر Adobe نیز بسته به فضای رنگی (colorspace) تصویر و غیره توسط libjpeg تولید (یا حذف) میشود. این رفتار به نسخهٔ کتابخانه libjpeg مورد استفاده بستگی دارد. برای اطمینان از حفظ نشانگر Adobe، میتوان از گزینه --keep-adobe استفاده کرد.
برای حذف نشانگرهای اضافی، میتوان از یک یا چند گزینه از گزینههای --strip-* استفاده کرد.
برای مثال: --strip-icc --strip-xmp --strip-com
همچنین میتوان --strip-all و سپس یک یا چند گزینه از گزینههای --keep-* را مشخص کرد تا نشانگرهایی که باید حفظ شوند بهطور صریح تعیین گردند.
برای مثال: --strip-all --keep-exif --keep-iptc
گزینههای کنترل متادیتا (نشانگرها) در فایلهای خروجی:
- -s, --strip-all
- تمام نشانگرها را از فایل خروجی حذف میکند. (توجه! بهطور پیشفرض فقط نشانگرهای Comment و Exif/IPTC/PhotoShop/ICC/XMP حفظ میشوند و سایر موارد دور ریخته میشوند). تصویر JPEG خروجی بسته به فضای رنگی استفادهشده در تصویر همچنان احتمالاً شامل یک یا دو نشانگر (JFIF و Adobe APP14) خواهد بود، چرا که این نشانگرها بهطور خودکار توسط کدگذار libjpeg تولید میشوند.
- --strip-none, --keep-all
- «تمام»
نشانگرها
را در تصویر
حفظ میکند.
این گزینه
همهٔ
نشانگرها
را در تصویر
دستنخورده
باقی
میگذارد،
بهجز
نشانگرهای
JFIF (APP0) و Adobe (APP14) که
توسط
کتابخانه libjpeg
بازتولید
میشوند.
توجه! در صورت مشخص شدن این گزینه، هر گزینهٔ دیگر از نوع --strip-* یا --keep-* نادیده گرفته میشود.
- --strip-com
- نشانگرهای Comment (COM) را از فایل خروجی حذف میکند.
- --strip-exif
- نشانگرهای EXIF را از فایل خروجی حذف میکند.
- --strip-iptc
- نشانگرهای IPTC / Adobe Photoshop (APP13) را از فایل خروجی حذف میکند.
- --strip-icc
- پروفایلهای ICC را از فایل خروجی حذف میکند.
- --strip-xmp
- پروفایلهای XMP را از فایل خروجی حذف میکند.
- --strip-jfif
- نشانگرهای JFIF را از فایل خروجی حذف میکند.
- --strip-jfxx
- نشانگرهای JFXX (JFIF Extensions) را از فایل خروجی حذف میکند.
- --strip-adobe
- نشانگرهای Adobe را از فایل خروجی حذف میکند.
- --keep-com
- هیچیک از نشانگرهای Comment (COM) را از فایل خروجی حذف نمیکند.
- --keep-exif
- هیچیک از نشانگرهای EXIF را از فایل خروجی حذف نمیکند.
- --keep-iptc
- هیچیک از نشانگرهای IPTC / Adobe Photoshop (APP13) را از فایل خروجی حذف نمیکند.
- --keep-icc
- هیچیک از پروفایلهای ICC را از فایل خروجی حذف نمیکند.
- --keep-xmp
- هیچیک از پروفایلهای XMP را از فایل خروجی حذف نمیکند.
- --keep-jfif
- هیچیک از نشانگرهای JFIF را از فایل خروجی حذف نمیکند.
- --keep-jfxx
- هیچیک از نشانگرهای JFXX (JFIF Extensions) را از فایل خروجی حذف نمیکند.
- --keep-adobe
- نشانگرهای Adobe را از فایل خروجی حذف نمیکند..SH "گزارش باگها (BUGS)" هنگام استفاده از گزینهٔ --size، اندازهٔ فایل حاصل همیشه دقیقاً به اندازهٔ درخواستشده نیست. راهکار این است که jpegoptim را دوباره روی همان فایل اجرا کنید که اغلب منجر به فایلی نزدیکتر به اندازهٔ هدف خواهد شد.
همچنین ببینید (SEE ALSO)
jpeginfo(1)
نویسندگان (AUTHORS)
Timo Kokkonen <tjko@iki.fi>
کپیرایت و تکثیر (COPYRIGHT)
Copyright (C) 1996-2025 Timo Kokkonen
این برنامه یک نرمافزار آزاد است؛ شما میتوانید آن را تحت شرایط «پروانهٔ عمومی همگانی گنو» (GNU General Public License) همانطور که توسط «بنیاد نرمافزار آزاد» (Free Software Foundation) منتشر شده است، چه نسخهٔ ۲ پروانه یا (به انتخاب خودتان) هر نسخهٔ بالاتر دیگری، بازتوزیع نموده و/یا تغییر دهید.
این برنامه به این امید توزیع شده است که مفید واقع شود، اما بدون هیچگونه ضمانتی؛ حتی بدون ضمانت ضمنی «قابل فروش بودن» یا «مناسب بودن برای یک هدف خاص». برای جزئیات بیشتر «پروانهٔ عمومی همگانی گنو» را ببینید.
شما باید به همراه این برنامه یک نسخه از «پروانهٔ عمومی همگانی گنو» را دریافت کرده باشید؛ در غیر این صورت، به نشانی زیر به بنیاد نرمافزار آزاد بنویسید: Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
| 28 Jan 2025 | 4th Berkeley Distribution |