الاسم
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
- اطبع رقم الإصدار (asMajor.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
- تغيير عدد الأقسام المراد استخدامها أثناء تقسيم الأرقام القياسية
للخوارزمية. يجب أن تكون الشرائح في نطاق
1
إلى4
. القيمة التلقائية هي4
. لا يؤثر هذا الخيار في الطريقتَين 3 والإصدارات الأحدث، ما لم تكن-low_memory
غير مفعّلة. استخدام البيانات -partition_limit int
- تقلل الجودة من خلال الحد من عدد وحدات البت التي تستخدمها بعض وحدات الماكرو.
النطاق هو
0
(بدون تراجع، وهو الإعداد التلقائي) إلى100
(انخفاض كامل). تتراوح القيم المفيدة عادةً بين30
و70
للصور الكبيرة نسبيًا. ضِمن بتنسيق VP8، فإن ما يُدعى قسم التحكم يبلغ حده 512 كيلوبايت يُستخدم لتخزين المعلومات التالية: ما إذا كان مصغّر الكتلة تخطيها، والشريحة التي تنتمي إليها، سواء تم ترميزها على أنها ضمن 4x4 أو بين وضع 16×16، وأخيرًا أوضاع التنبؤ التي سيتم استخدامها لكل الكتل الفرعية. بالنسبة إلى الصور الكبيرة جدًا، لا تترك مساحة 512 كيلوبايت سوى بضع وحدات بت لكل 16x16 chromeblock. الحد الأدنى المطلق هو 4 بت لكل كتلة ماكرو. تخطى، وقطاع البيانات والوضع أن تستخدم جميع هذه البتات الأربعة تقريبًا (على الرغم من وهذا أمرٌ مستبعَد)، وهو ما يؤثر في الصور الكبيرة جدًا. تشير رسالة الأشكال البيانية يتحكّم العاملpartition_limit
في معدّل تكرار الوضع الأكثر تكلفة. (داخل 4×4). يكون ذلك مفيدًا في حال الوصول إلى الحدّ الأقصى المسموح به وهو 512 ألف وتظهر الرسالة التالية: رمز الخطأ: 6 (PARTITION0_OVERFLOW: القسم رقم 0 كبير جدًا ولا يسع 512 كيلوبايت). في حال استخدام الدالة-partition_limit
غير كافية لتلبية قيد 512k، حيث يجب على المرء يستخدم عدد أقل من المقاطع لحفظ المزيد من وحدات بت العنوان لكل كتلة ماكرو. عرض الخيار-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. تشير رسالة الأشكال البيانية
حجم طائرة luma هو
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://issues.webmproject.org
نرحّب برموز التصحيح. يمكنك الاطّلاع على هذه الصفحة للبدء: 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 (ويمكن أن يستخدمه آخرون).