Bagaimana untuk memampatkan imej menggunakan Python dan PIL?

WBOY
Lepaskan: 2023-09-02 19:41:07
ke hadapan
1110 orang telah melayarinya

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.

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.

Cara memampatkan imej menggunakan Python dan PIL

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
Salin selepas log masuk

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

Salin selepas log masuk

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
Salin selepas log masuk

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')
Salin selepas log masuk

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)
Salin selepas log masuk

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)
Salin selepas log masuk

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)
Salin selepas log masuk

Kod ini akan mencetak saiz fail imej asal dan imej termampat. Anda boleh mengesahkan bahawa imej yang dimampatkan adalah lebih kecil daripada imej asal.

Ini ialah kod pelaksanaan lengkap

Contoh

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)
Salin selepas log masuk

Output

Original Size:  1234567
Compressed Size:  543210
Salin selepas log masuk

Sila ambil perhatian bahawa saiz fail sebenar bergantung pada imej input yang digunakan untuk kod tersebut. Ini hanya contoh.

KESIMPULAN

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!

Label berkaitan:
sumber:tutorialspoint.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!