الاسم
cwebp
-- ضغط ملف صورة إلى ملف WebP
الملخص
cwebp [options] input_file -o output_file.webp
الوصف
يضغط cwebp
صورة باستخدام تنسيق WebP. يمكن أن يكون تنسيق الإدخال إما عينة PNG أو JPEG أو TIFF أو WebP أو عينات Y'CbCr أولية.
ملاحظة: لا يمكن استخدام ملفات PNG وWebP المتحركة.
الخيارات
تشمل الخيارات الأساسية ما يلي:
-o string
- حدِّد اسم ملف WebP للمخرجات. في حال حذفه، سيضغط
cwebp
ولكن سيتم الإبلاغ عن الإحصاءات فقط. سيؤدي استخدام "-" كاسم للمخرجات إلى توجيه الناتج إلى "stdout". -- string
- تحديد ملف الإدخال بوضوح يكون هذا الخيار مفيدًا إذا كان ملف الإدخال
يبدأ بعلامة "-" على سبيل المثال. يجب أن يظهر هذا الخيار في الحقل
last
. وسيتم تجاهل أي خيارات أخرى بعد ذلك. -h, -help
- ملخّص قصير عن الاستخدام:
-H, -longhelp
- ملخّص عن كل الخيارات الممكنة
-version
- اطبع رقم الإصدار (Major.minor.revision) واخرج من الصفحة.
-lossless
- ننصحك بترميز الصورة بدون أي فقدان. بالنسبة إلى الصور ذات المساحة الشفافة بالكامل،
سيتم الاحتفاظ بقيم البكسل غير المرئية (R/G/B أو Y/U/V) إلا في حال استخدام
خيار
-exact
. -near_lossless int
- حدِّد مستوى المعالجة المسبقة للصور تقريبًا عند فقدانها. يضبط هذا الخيار قيم البكسل للمساعدة في الانضغاط، لكن له تأثير ضئيل جدًا على جودة الصورة المرئية. تعمل هذه الميزة على تشغيل وضع الضغط بدون فقدان البيانات تلقائيًا.
يتراوح النطاق بين
0
(الحد الأقصى للمعالجة المسبقة) إلى100
(بدون معالجة مسبقة، الإعداد التلقائي). تبلغ القيمة المعتادة حوالي60
. لاحظ أن الخسارة مع-q 100
يمكن في بعض الأحيان أن تؤدي إلى نتائج أفضل. -q float
حدِّد عامل الضغط لقنوات RGB بين
0
و100
. والقيمة التلقائية هي75
.في حالة الضغط مع فقدان البيانات (الافتراضي)، ينتج عن عامل صغير ملفًا أصغر حجمًا بجودة أقل. يتم الحصول على أفضل جودة باستخدام القيمة
100
.في حال الضغط بدون فقدان البيانات (المحدد في الخيار
-lossless
)، يؤدي العامل الصغير إلى زيادة سرعة الضغط، ولكنه ينتج ملفًا أكبر حجمًا. يتم تحقيق أقصى ضغط باستخدام قيمة100
.-z int
شغِّل وضع الضغط
lossless
بالمستوى المحدد بين 0 و9، حيث يكون المستوى 0 هو الأسرع والمستوى 9 الأبطأ. ينتج عن الوضع السريع حجم ملف أكبر من الملفات الأبطأ. القيمة التلقائية الجيدة هي-z 6
. هذا الخيار هو في الواقع اختصار لبعض الإعدادات المحددة مسبقًا للجودة والطريقة. إذا تم استخدام الخيارَين-q
أو-m
لاحقًا، سيتم إلغاء صلاحية تأثير هذا الخيار.-alpha_q int
حدِّد عامل الضغط لضغط ألفا بين
0
و100
. يتم ضغط ألفا بدون فقدان البيانات باستخدام القيمة100
، بينما ينتج عن القيم المنخفضة ضغط مع فقدان البيانات. القيمة التلقائية هي100
.-preset string
تحديد مجموعة من المعلَمات المحدّدة مسبقًا لتناسب نوع معيّن من مواد المصدر. والقيم المحتملة هي:
default
وphoto
وpicture
وdrawing
وicon
وtext
.نظرًا لأن
-preset
تستبدل قيم المعلمات الأخرى (باستثناء قيمة-q
)، من المفترض أن يظهر هذا الخيار أولاً بترتيب الوسيطات.-m int
حدِّد طريقة الضغط التي تريد استخدامها. تتحكم هذه المعلمة في المفاضلة بين سرعة الترميز وحجم الملف المضغوط وجودته. تتراوح القيم المحتملة بين
0
و6
. القيمة التلقائية هي4
. عند استخدام قيم أعلى، سيستغرق برنامج الترميز وقتًا أطول في فحص إمكانيات الترميز الإضافية وتحديد مدى الجودة المطلوب. يمكن أن تؤدي القيمة المنخفضة إلى وقت معالجة أسرع على حساب حجم الملف الأكبر وانخفاض جودة الضغط.-crop x_position y_position width height
اقتصاص المصدر على شكل مستطيل مع الزاوية العلوية اليسرى في الإحداثيات (
x_position
،y_position
) والحجمwidth
×height
. يجب أن تكون مساحة الاقتصاص هذه مضمنة بالكامل داخل مستطيل المصدر. ملاحظة: يتم تطبيق الاقتصاص قبل أي تحجيم.-resize width height
غيّر حجم المصدر إلى مستطيل بحجم
width
×height
. إذا كانت مَعلمة العرض أو الارتفاع هي0
(وليس كلاهما)، فسيتم احتساب القيمة مع الحفاظ على نسبة العرض إلى الارتفاع. ملاحظة: يتم تطبيق التحجيم بعد الاقتصاص.-mt
استخدام سلاسل التعليمات المتعددة للترميز، إن أمكن
-low_memory
قلِّل من استخدام الذاكرة للترميز المفقودة عن طريق توفير أربعة أضعاف الحجم المضغوط (عادةً). وهذا من شأنه أن يجعل التشفير أبطأ والمخرجات مختلفة قليلاً في الحجم والتشويه. لا تكون هذه العلامة فعالة إلا للطرق 3 والأعلى، وتكون غير مفعّلة تلقائيًا. تجدر الإشارة إلى أنّ إيقاف هذه العلامة سينتج عنه بعض الآثار الجانبية على مصدر بيانات البت، إذ يتم فرض بعض الميزات في مصدر بت، مثل عدد الأقسام (يتم فرض التصنيف على
1
). تجدر الإشارة إلى أنّه تتم طباعة تقرير أكثر تفصيلاً لحجم مصدر البيانات من قِبلcwebp
عند استخدام هذا الخيار.
خيارات الخسارة
ولا تكون هذه الخيارات فعالة إلا عند تطبيق تشفير مع فقدان البيانات (الترميز الافتراضي، مع ألفا أو بدونه).
-size int
- حدِّد حجمًا مستهدفًا (بالبايت) لمحاولة الوصول إلى الناتج المضغوط
والوصول إليه. سيُجري الضاغط عدة تمريرات من الترميز الجزئي للاقتراب قدر الإمكان من هذا الهدف. في حال استخدام كل من
-size
و-psnr
، ستكون قيمة-size
هي السائدة. -psnr float
- حدِّد PSNR مستهدَف (بالديسيبل) لمحاولة الوصول إلى الناتج المضغوط.
سيُجري الضاغط عدة تمريرات للترميز الجزئي للاقتراب قدر الإمكان من هذا الهدف. في حال استخدام كل من
-size
و-psnr
، ستكون قيمة-size
هي السائدة. -pass int
- يمكنك ضبط حدّ أقصى لعدد البطاقات التي يمكن استخدامها أثناء انقسام الاتّجاهات كما تُستخدم في الخيارَين
-size
أو-psnr
. الحد الأقصى للقيمة هو10
، القيمة التلقائية هي1
. إذا تم استخدام الخيارَين-size
أو-psnr
، ولكن لم يتم تحديد-pass
، سيتم استخدام قيمة تلقائية تشمل "6". إذا تم تحديد-pass
بدون تحديد-size
أو-psnr
، سيتم استخدام قيمة PSNR مستهدَفة تبلغ 40 ديسيبل. -af
- لتفعيل الفلتر التلقائي. ستستغرق هذه الخوارزمية وقتًا إضافيًا في تحسين قوة الفلترة للوصول إلى جودة متوازنة.
-jpeg_like
- يمكنك تغيير إعدادات ربط المعلَمات الداخلية لمطابقة الحجم المتوقَّع لضغط JPEG بشكل أفضل. وستنتج هذه العلامة بشكل عام ملف إخراج بحجم مماثل لمكافئ JPEG (لإعداد
-q
نفسه)، ولكن مع تشوّه بصري أقل.
الخيارات المتقدّمة:
-f int
- حدِّد مدى قوة فلتر إزالة الحظر، تتراوح بين
0
(بدون فلترة) و100
(الحد الأقصى للفلترة). وستؤدي القيمة0
إلى إيقاف أي فلترة. ستزيد القيمة الأعلى من قوة عملية التصفية المطبقة بعد فك ترميز الصورة. كلما ارتفعت القيمة، أصبحت الصورة أكثر سلاسة. تتراوح القيم العادية عادةً بين20
و50
. -sharpness int
- حدِّد حدّة الفلتر (إذا تم استخدامه). النطاق هو
0
(الأكثر حدة) إلى7
(الأقل حدة). الإعداد التلقائي هو0
. -strong
- استخدِم فلترة قوية (في حال كانت الفلترة مستخدَمة بفضل خيار
-f
). تكون الفلترة القوية مفعَّلة تلقائيًا. -nostrong
- يمكنك إيقاف الفلترة القوية (في حال استخدام الفلترة بفضل خيار
-f
) واستخدام الفلترة البسيطة بدلاً منها. -sharp_yuv
- استخدِم تحويل RGB->YUV بدقة أعلى وأكثر وضوحًا إذا لزم الأمر. يُرجى العِلم أنّ هذه العملية أبطأ من عملية التحويل التلقائية المستندة إلى نموذجَي RGB-> YUV.
-sns int
- حدِّد سعة تشكيل الضوضاء المكانية. تشكيل الضوضاء المكانية
(أو sns باختصار) يشير إلى مجموعة عامة من الخوارزميات المضمنة
المستخدمة لتحديد أي منطقة من الصورة يجب أن تستخدم وحدات بت أقل نسبيًا، وأي مكان آخر لنقل هذه البتات بشكل أفضل. يتراوح النطاق المحتمل من
0
(الخوارزمية غير مفعّلة) إلى100
(الحد الأقصى للتأثير). القيمة التلقائية هي50
. -segments int
- تغيير عدد الأقسام المراد استخدامها أثناء تقسيم خوارزمية
sns. يجب أن تكون الشرائح في النطاق من
1
إلى4
. القيمة التلقائية هي4
. لا يؤثر هذا الخيار في الطرق 3 والإصدارات الأحدث، ما لم يتم استخدام-low_memory
. -partition_limit int
- يمكنك خفض الجودة من خلال الحدّ من عدد وحدات البت التي تستخدمها بعض وحدات الماكرو.
النطاق هو
0
(بدون تراجع، الإعداد التلقائي) إلى100
(تقليص كامل). تتراوح القيم المفيدة عادةً بين30
و70
للصور الكبيرة نسبيًا. في التنسيق VP8، يكون الحدّ الأقصى المسموح به لقسم التحكّم في ما يُسمى بـ 512 كيلوبايت ويتم استخدامه لتخزين المعلومات التالية: ما إذا تم تخطي ملف الماكرو، والجزء الذي ينتمي إليه، وما إذا كان قد تم ترميزه بالوضع intra 4x4 أو intra 16x16، وأخيرًا أوضاع التوقّع المراد استخدامها لكل من الكتل الفرعية. بالنسبة إلى الصور الكبيرة جدًا، لا يترك حجمها 512 كيلوبايت سوى مساحة بضع وحدات بت لكل وحدة الماكرو بحجم 16×16. الحد الأدنى المطلق هو 4 بت لكل وحدة الماكرو. ويمكن أن تستهلك معلومات التخطي والتقسيم والوضع كل هذه البتات الأربعة تقريبًا (على الرغم من أن هذه الحالة غير محتملة)، وهو ما يمثل مشكلة في الصور الكبيرة جدًا. ويتحكّم عاملpartition_limit
في عدد مرات استخدام الوضع الأكثر تكلفة (ضمن 4×4). يفيد ذلك في حال الوصول إلى الحدّ الأقصى البالغ 512 كيلوبايت وعرض الرسالة التالية: رمز الخطأ: 6 (PARTITION0_OVERFLOW: القسم رقم 0 أكبر من أن يتلاءم مع 512 كيلوبايت). وإذا لم يكن استخدام-partition_limit
كافيًا لاستيفاء القيد 512 ألف، يجب استخدام شرائح أقل لتوفير المزيد من وحدات بت الرأس لكل وحدة ماكرو. يمكنك الاطّلاع على خيار-segments
. تجدر الإشارة إلى أنّ خيارَي-m
و-q
يؤثران أيضًا في قرارات برنامج الترميز وقدرته على بلوغ هذا الحدّ الأقصى.
خيارات التسجيل
وتتحكّم الخيارات التالية في مستوى الإخراج:
-v
- اطبع معلومات إضافية (وقت الترميز على وجه الخصوص).
-print_psnr
- حساب متوسط PSNR وتسجيله (ذروة نسبة الإشارة إلى الضوضاء)
-print_ssim
- حساب متوسط التشابه الهيكلي (SSIM) وإعداد تقارير عنه، ويمكنك الاطّلاع على https://en.wikipedia.org/wiki/SSIM للحصول على تفاصيل إضافية.
-print_lsim
- حساب مقياس التشابه المحلي والإبلاغ عنه (مجموع الأخطاء الأقل بين جيران وحدات البكسل التي تم تجميعها).
-progress
- الإبلاغ عن تقدُّم الترميز بالنسبة المئوية
-quiet
- لا تطبع أي شيء.
-short
- يُرجى طباعة المعلومات الموجزة فقط (حجم ملف الناتج وPSNR) لأغراض الاختبار.
-map int
- إخراج خريطة ASCII إضافية لمعلومات الترميز تتراوح قيم الخريطة المحتملة
بين
1
و6
والهدف من ذلك فقط هو المساعدة في تصحيح الأخطاء.
خيارات إضافية
تشمل الخيارات الأكثر تقدمًا ما يلي:
-s width height
- حدِّد أنّ ملف الإدخال يتألف من عيّنات Y'CbCr أولية:
يتّبع اقتراح ITU-R BT.601، بالتنسيق الخطي 4:2:0. حجم المستوى
اللوما هو
width
×height
. -pre int
- حدِّد بعض خطوات المعالجة المسبقة. سيؤدي استخدام القيمة
2
إلى تفعيل التردد العشوائي الزائف المستند إلى الجودة أثناء تحويل نماذج RGBA->YUVA (للضغط لفقدان البيانات فقط). -alpha_filter string
- حدِّد طريقة الفلترة القائمة على التوقّعات لمستوى ألفا. واحد من
none
أوfast
أوbest
، بترتيب متزايد وبطيء الإعداد التلقائي هوfast
. داخليًا، يتم إجراء تصفية ألفا باستخدام أربعة تنبؤات محتملة (بدون، أفقي، رأسي، تدرج). وسيجرّب الوضعbest
كل وضع على التوالي ويختار الوضع الذي يوفّر الحجم الأصغر. سيحاول الوضعfast
إنشاء تخمين مسبق بدون اختبار جميع الأوضاع. -alpha_method int
- حدِّد الخوارزمية المستخدَمة لضغط ألفا:
0
أو1
. الخوارزمية0
تشير إلى عدم الضغط، ويستخدم1
تنسيق WebP بدون فقدان البيانات للضغط. والقيمة التلقائية هي1
. -exact
- الحفاظ على قيم نموذج أحمر أخضر أزرق في المنطقة الشفافة. الإعداد التلقائي هو إيقاف التشغيل لتسهيل الضغط.
-blend_alpha int
- يمزج هذا الخيار قناة ألفا (في حال توفرها) مع المصدر باستخدام لون الخلفية المحدد بالنظام السداسي العشري مثل 0xrrggbb. وتتم بعد ذلك إعادة ضبط قناة ألفا
على القيمة المبهمة
255
. -noalpha
- سيؤدي استخدام هذا الخيار إلى تجاهل قناة الإصدار الأولي.
-hint string
- حدِّد التلميح حول نوع صورة الإدخال. القيم المتاحة:
photo
أوpicture
أوgraph
-metadata string
قائمة بيانات التعريف المفصولة بفواصل لنسخها من الإدخال إلى الإخراج في حال وجودها. القيم الصالحة:
all
،none
،exif
،icc
،xmp
. القيمة التلقائية هيnone
.يُرجى العلم أنّ كل تنسيق إدخال قد لا يتيح استخدام كل التركيبات.
-noasm
يمكنك إيقاف جميع تحسينات التجميع.
Bugs
يُرجى إبلاغ أداة تتبُّع المشاكل عن جميع الأخطاء: https://bugs.chromium.org/p/webp
مرحبًا بك في التصحيحات. يمكنك الانتقال إلى هذه الصفحة لبدء الاستخدام: https://www.webmproject.org/code/contribute/submitting-patches/
أمثلة
cwebp -q 50 -lossless picture.png -o picture_lossless.webp
cwebp -q 70 picture_with_alpha.png -o picture_with_alpha.webp
cwebp -sns 70 -f 50 -size 60000 picture.png -o picture.webp
cwebp -o picture.webp -- ---picture.png
المؤلفون
"cwebp
" هو جزء من libwebp
، وقد كتبه فريق WebP.
يتوفّر أحدث شجرة مصدر على الرابط
https://chromium.googlesource.com/webm/libwebp/.
تمت كتابة هذه الصفحة اليدوية لمشروع Debian (ويمكن أن تستخدمها جهات أخرى).