Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk memampatkan imej menggunakan Python dan PIL?
Dalam era digital hari ini, imej telah menjadi bahagian penting dalam kehidupan kita. Mereka memainkan peranan penting dan boleh dilihat dalam komunikasi dan ekspresi di pelbagai platform, daripada media sosial ke laman web. Walau bagaimanapun, imej berkualiti tinggi boleh menggunakan banyak ruang storan dan menyebabkan masa pemuatan tapak web lebih perlahan dan masa muat naik yang lebih lama. Pemampatan imej menjadi terpakai dalam kes ini. Dengan mengurangkan saiz imej anda, anda memastikan masa pemuatan yang lebih cepat, penggunaan lebar jalur yang lebih rendah dan lebih banyak ruang storan.
Dalam artikel ini, kita akan melihat proses memampatkan imej menggunakan Python dan PIL. PIL, juga dikenali sebagai Perpustakaan Pengimejan Python. Ia adalah perpustakaan yang sangat berguna dan penting dalam Python yang boleh membuka, memanipulasi dan menyimpan pelbagai format fail imej. Dengan menguasai keupayaan perpustakaan ini, kami boleh memampatkan imej dengan mudah dan mendapat faedah daripada masa pemuatan yang lebih pantas dan ruang storan yang lebih sedikit.
Sebelum kita menyelami kod, mari kita lihat pelbagai jenis pemampatan imej.
Terdapat dua jenis pemampatan imej utama: lossy dan lossless.
Mampatan hilang: Mampatan hilang ialah sejenis pemampatan di mana sesetengah data hilang semasa proses pemampatan. Ini bermakna apabila anda menyahmampat imej, ia tidak akan sama dengan imej asal. Walau bagaimanapun, perbezaan ini biasanya tidak dapat dilihat oleh mata manusia. Contoh pemampatan lossy termasuk JPEG dan GIF.
Mampatan tanpa rugi: Mampatan tanpa rugi ialah sejenis pemampatan yang tidak kehilangan sebarang data semasa proses pemampatan. Ini bermakna apabila anda menyahmampat imej, ia akan sama dengan imej asal. Contoh pemampatan tanpa kehilangan termasuk PNG dan TIFF.
Sekarang kita memahami pelbagai jenis pemampatan imej, mari kita beralih kepada kod.
Langkah 1: Pasang PIL
Langkah pertama ialah memasang perpustakaan PIL. Untuk ini anda boleh menggunakan pip. Buka terminal atau command prompt dan taip arahan berikut:
pip install Pillow
Mesej kejayaan
Collecting Pillow Downloading Pillow-8.4.0-cp39-cp39-win_amd64.whl (3.2 MB) |████████████████████████████████| 3.2 MB 2.1 MB/s Installing collected packages: Pillow Successfully installed Pillow-8.4.0
Langkah 2: Import perpustakaan yang diperlukan
Selepas memasang PIL, anda perlu mengimport perpustakaan yang diperlukan ke dalam program Python anda. Untuk melakukan ini, tambah baris kod berikut pada permulaan fail Python:
from PIL import Image import os
Langkah 3: Muatkan Imej
Sekarang selepas mengimport perpustakaan yang diperlukan, mari muatkan imej yang ingin dimampatkan. Untuk ini kita boleh menggunakan kaedah Image.open() daripada perpustakaan PIL.
image = Image.open('image.jpg')
Kod ini membuka imej bernama 'image.jpg' dan memberikannya kepada pembolehubah 'imej'.
Langkah 4: Ubah saiz imej
Selepas memuatkan imej, kita perlu mengubah saiznya untuk mengurangkan saiz failnya. Untuk ini kita boleh menggunakan kaedah resize() daripada modul Image.
width, height = image.size new_size = (width//2, height//2) resized_image = image.resize(new_size)
Kod ini akan mengubah saiz imej kepada separuh daripada saiz asalnya. Anda boleh menukar saiz imej mengikut keperluan.
Langkah 5: Simpan imej yang dimampatkan
Selepas mengubah saiz imej, kita perlu menyimpan imej yang dimampatkan. Untuk melakukan ini, kita boleh menggunakan kaedah save() daripada modul Image.
resized_image.save('compressed_image.jpg', optimize=True, quality=50)
Selepas memampatkan imej, kita perlu menyimpannya sebagai fail baharu. Kod ini menyimpan imej termampat sebagai fail bernama 'compressed_image.jpg'. Kita boleh menggunakan parameter 'optimumkan' untuk memastikan imej dioptimumkan untuk rangkaian. Selain itu, kita boleh menggunakan parameter 'kualiti' untuk melaraskan kualiti imej mengikut keperluan.
Langkah 6: Sahkan imej dimampatkan
Akhir sekali, kami perlu mengesahkan bahawa imej yang dimampatkan telah disimpan dengan betul. Untuk melakukan ini, kita boleh membandingkan saiz fail imej asal dan termampat.
original_size = os.path.getsize('image.jpg') compressed_size = os.path.getsize('compressed_image.jpg') print("Original Size: ", original_size) print("Compressed Size: ", compressed_size)
Kod ini akan mencetak saiz fail imej asal dan imej termampat. Anda boleh mengesahkan bahawa imej yang dimampatkan adalah lebih kecil daripada imej asal.
from PIL import Image import os image = Image.open('image.jpg') width, height = image.size new_size = (width//2, height//2) resized_image = image.resize(new_size) resized_image.save('compressed_image.jpg', optimize=True, quality=50) original_size = os.path.getsize('image.jpg') compressed_size = os.path.getsize('compressed_image.jpg') print("Original Size: ", original_size) print("Compressed Size: ", compressed_size)
Original Size: 1234567 Compressed Size: 543210
Sila ambil perhatian bahawa saiz fail sebenar bergantung pada imej input yang digunakan untuk kod tersebut. Ini hanya contoh.
Bagaimanapun, kami membincangkan perbezaan antara pemampatan lossy dan lossless dan bagaimana pemampatan lossy dan lossless lebih baik dalam mengekalkan kualiti imej tetapi mengambil lebih banyak ruang. Kami kemudiannya melalui panduan langkah demi langkah tentang cara memampatkan imej menggunakan PIL dalam Python. Kami mempelajari cara mengubah saiz dan menyimpan imej dalam format termampat, serta beberapa amalan terbaik untuk memastikan hasil yang terbaik.
Dengan mengikut langkah yang digariskan dalam artikel ini, anda boleh memampatkan imej anda dengan mudah dan mengoptimumkannya untuk kegunaan web. Anda boleh melaraskan kualiti dan saiz imej termampat untuk mendapatkan keseimbangan yang betul antara kualiti imej dan saiz fail. Sama ada anda pembangun laman web atau jurugambar amatur, menguasai pemampatan imej ialah kemahiran berharga yang boleh meningkatkan kehadiran digital anda.
Atas ialah kandungan terperinci Bagaimana untuk memampatkan imej menggunakan Python dan PIL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!