WebP merupakan sebuah format gambar yang dikembangkan oleh Google untuk mengoptimasi suatu gambar di dalam website. Format WebP menyediakan gambar berkualitas tinggi dengan ukuran penyimpanan yang rendah dibandingkan format PNG dan JPEG. Dengan format WebP, pengguna internet dapat memuat suatu website dengan lebih cepat karena ukurannya yang kecil. Kemudian, skor pada pengujian performa suatu website juga menjadi lebih baik. Oleh karena itu, pada artikel ini saya akan membagikan cara mengkonversi gambar PNG ke WebP dengan Python. Mari simak pembahasannya berikut ini.
Motivasi Pribadi
Secara pribadi, tujuan saya membuat program ini adalah untuk keperluan website ini. Dengan mengkonversi gambar PNG ke WebP, saya dapat menghemat penyimpanan di dalam hosting serta dapat mengoptimasi performa dari website ini.
Mengapa tidak pakai plugin image optimizer saja?
Lebih hemat penyimpanan hosting karena file original nya sudah terkompresi sebelum diupload.
Mengapa tidak konversi gambar PNG ke WebP dengan online converter?
Prosesnya sangat panjang. Kita perlu mengupload filenya ke website tersebut. Kemudian menunggu proses konversi dan mendownloadnya kembali. Cara ini tidak efisien.
Fitur Konversi Gambar PNG ke WebP
Di sini terdapat beberapa fitur yang akan kita rancang.
- Pengguna dapat memilih file dengan tampilan GUI file explorer.
- Pengguna dapat mengkompresi gambar dengan memilih tingkat kualitasnya.
Program
Pertama, pastikan Python versi 3 telah terinstall dengan baik di perangkat Anda. Kemudian, periksa juga instalasi package Pillow. Jika package Pillow belum terinstall, maka gunakan perintah pip install pillow di cmd. Kemudian, salin program Python berikut. Silakan modifikasi programnya sesuai kebutuhan Anda.
from PIL import Image
import os
from tkinter import Tk
from tkinter.filedialog import askopenfilenames
# Make high resolution of GUI (not blurry)
from ctypes import windll
windll.shcore.SetProcessDpiAwareness(1)
Tk().withdraw()
# Show an "Open" dialog box and return the path to the selected file.
filenames = askopenfilenames()
# Convert the tuple to a list.
filenames = list(filenames)
quality = int(input('quality (1-100): '))
for item in filenames:
im = Image.open(item)
item = item.rstrip(".png")
item = item + ".webp"
im.save(item, format = "WebP", optimize = True, quality = quality)
Pada program di atas, saya menyediakan fitur kompresi untuk memperkecil ukuran penyimpanan gambar. Jika Anda ingin kualitas gambar yang terbaik tanpa memilih kualitas kompresi, Anda bisa mengganti optimize = True, quality = quality dengan lossless = True. Anda juga dapat menggunakan program ini untuk mengkonversi gambar JPEG ke WebP, tentunya dengan mengubah .png menjadi .jpg pada program tersebut.
Selamat! Program ini sudah selesai kita rancang. Silakan jalankan program tersebut untuk mengkonversi gambar PNG ke WebP. Semoga artikel ini dapat bermanfaat bagi Anda. Jika ada saran atau pertanyaan, silakan berikan komentar pada artikel ini.