بهینه سازی و کاهش حجم تصاویر با cwebp برای سئو

بهینه سازی و کاهش حجم تصاویر با cwebp برای سئو

سئو، آموزشی

بهینه سازی و کاهش حجم تصاویر با cwebp برای سئو

هیچ کس به دنبال این نیست که گوگل را نسبت به وب سایتش متنفر سازد، خوشبختانه، شما با بهینه سازی تصاویر می‌توانید عملکرد وب سایتتان را بهبود بخشید. یکی از مشکلات موجود در قالب بندی تصاویر و عکس ها، کاهش کیفیت شدید پس از کم حجم کردن تصاویر می‌باشد، که این موضوع به نوبه خود خیلی مهم است و در دید کاربران نسبت به وب سایت شما تاثیر گذار است. بهینه سازی تا وقتی خوب است که با کم کردن حجم باعث کاهش کیفیت و زشت شدن تصویر نشوید. در این مقاله به شما نکاتی را ارائه می‌دهیم که اجازه می‌دهد تصاویر و عکس‌ها را به اندازه‌ای کم حجم و بهینه سازی کنید که کیفیت بالای خود را از دست ندهند و بتوانید آن‌ها را با افتخار در وب سایتتان به نمایش بگذارید.[mizfa]

در مقاله تبدیل عکس به وب پی webp در پایتون توضیحاتی در مورد پسوند یا فرمت وب پی گفته شد، در این مقاله می خواهیم روش فشرده کردن و بهینه سازی تصاویر موجود در یک دایرکتوری را با ایجاد شل اسکریپت توضیح دهیم.

خب...، بدون فوت وقت سر آموزش می رویم؛

cwebp چیست؟ سی وب پی یا cwebp یک برنامه تحت خط فرمان جهت بهینه سازی تصاویر و تبدیل آن به فرمت webp می باشد که توسط شرکت گوگل ارائه شده است.

 نصب cwebp

برای نصب برنامه cwebp در سیستم عامل اوبونتو 16.04 از دستورات زیر می توانید استفاده کنید:

sudo apt-get update
sudo apt-get install webp

و برای نصب بروی سنت او اس 7 به روش زیر عمل می کنیم:

sudo yum install libwebp-tools

برای تبدیل فرمت به webp و بهینه سازی تصاویر بصورت تکی از دستور زیر استفاده می کنیم:

cwebp image.jpg -o image.webp

توجه: همه ی پارمترها با دَش یا همان خط تیره شروع شده اند که امکان دارد برای شما بصورت نشان داده نشود.

پارامتر یا گزینه -o برای مشخص کردن محل ذخیره و نام فایل خروجی(webp.) استفاده می شود.

پارامتر یا گزینه مهم دیگری که استفاده می کنیم -q می باشد از این پارمتر برای تعیین کیفیت و درصد فشرده سازی استفاده می شود، بعنوان مثال ما در اینجا دوتا تصویر با کیفیت 100درصد را تبدیل کردیم.

cwebp -q 100 image1.jpg -o image1.webp
cwebp -q 100 image2.jpg -o image2.webp

مقدار پیش فرض این پارامتر 75 درصد می باشد و درصورت تنظیم نکردن این پارامتر تصاویر با کیفیت 75درصد فشرده سازی و بهینه می شوند.

خروجی دستورات بالا را با دستور lsو پارمترهای -lh مشاهده میکنیم:

-rw-r--r-- 1 mutair mutair 7.4M Oct 28 23:36 image1.jpg
-rw-r--r-- 1 mutair mutair 3.9M Feb 18 16:46 image1.webp
-rw-r--r-- 1 mutair mutair 16M Dec 18 2016 image2.jpg
-rw-r--r-- 1 mutair mutair 7.0M Feb 18 16:59 image2.webp

همانطور که مشاهده می کنید حجم فایل image1.jpg حدودا 7 مگابایت می باشد که بعد از فشرده شدن و تبدیل به webp نزدیک به 4مگابایت شده است.

همچنین در تصویر image2.jpg تقریبا حجم تصویر 50 درصد کاهش داشته است، توجه داشته باشید که افت کیفیت محسوس نمی باشد و تاثیر زیادی بر کیفیت آن نمی گذارد.

 پارمتر -lossless برای حفظ اطلاعات کامل و اصلی تصاویر در هنگام فشرده سازی می باشد که بجای پارامتر -q استفاده می شود. این بهترین گزینه برای حفظ کیفیت تصاویر PNG است. 

cwebp -lossless logo.png -o logo.webp

خروجی:

-rw-r--r-- 1 mutair mutair 116K Jul 18 2017 logo.png
-rw-r--r-- 1 mutair mutair 60K Feb 18 16:42 logo.webp

در این خروجی نیز حجم تصویر تقریباً نصف شده و افت کیفیت محسوسی نداریم همچنین داده های اصلی تصویر دستکاری نشده اند.

بهینه سازی تصاویر داخل یک دایرکتوری

تاکنون همه بهینه سازی ها بصورت تک فایل بودند یعنی ما باید ورودی و خروجی فایل را مشخص می کردیم، شاید این عمل بصورت عملیاتی زیاد جالب نباشد یا حداق زمان بر باشد، برای تبدیل و کاهش حجم تصایر موجود دریک پوشه بصورت بازگشتی(جستجوی زیر پوشه ها) می توانید بواسطه یک شل اسکریپت که قراراست خودمان ایجاد کنیم استفاده خواهیم کرد.

برای ایجاد شل اسکریپت ابتدا یک فایل با اسم دلخواه و در مسیر دلخواه با دستور vi ایجاد می کنیم:

vi ~/webp-convert.sh

سپس محتویات زیر را داخل فایل کپی می کنیم، توجه داشته باشید بعد از ایجاد فایل باید یکی از کلیدهای i یا o یا insert را در محیط ویرایشگر vi بزنید تا مد نوشتن فعال شود.

#!/bin/bash

# converting JPEG images
find $1 -type f -and \( -iname "*.jpg" -o -iname "*.jpeg" \) \
-exec bash -c '
webp_path=$(sed 's/\.[^.]*$/.webp/' <<< "$0");
if [ ! -f "$webp_path" ]; then
 cwebp -quiet -q 90 "$0" -o "$webp_path";
fi;' {} \;

# converting PNG images
find $1 -type f -and -iname "*.png" \
-exec bash -c '
webp_path=$(sed 's/\.[^.]*$/.webp/' <<< "$0");
if [ ! -f "$webp_path" ]; then
 cwebp -quiet -lossless "$0" -o "$webp_path";
fi;' {} \;

در انتها برای ذخیره کرن فایل ابتدا دکمه esc را زده و سپس عبارت زیر را بنویسید و اینتر بزنید:

:wq

برای اجرای فایل نیاز به سطح دسترسی یا پرمیژن اجرایی می باشد که با دستور زیر این سطح دسترسی را به اسکریپتمون تخصیص می دهیم:

chmod a+x ~/webp-convert.sh

و تمام، به همین راحتی.... :)

حالا با استفاده از دستور زیر تمامی تصاویر موجود در دایرکتوری /var/www/html/webp را به webp تبدیل می کنیم:

./webp-convert.sh /var/www/html/webp


امیدوارم این مطلب براتون مفید بوده باشه، سوالات خودتون رو در بخش نظرات بپرسید. شاد و پر انرژی باشید :)


برگرفته شده از سایت digitalocean

تبدیل عکس به وب پی webp در پایتون
تبدیل عکس به وب پی webp در پایتونمقاله قبلی
تبدیل عکس به وب پی webp در پایتون

اولین نفری باشید که برای این مقاله نظر می دهد!

برای ثبت نظر وارد حساب کاربری خود شوید
برو بالا...