Menukar PNG kepada JPG dengan Mampat dalam PHP
Soalan:
Adakah mungkin untuk menukar tinggi- kualiti fail PNG ke JPG menggunakan PHP sambil mengekalkan kualiti dan mengurangkan saiz fail? Adakah terdapat sebarang fungsi atau perpustakaan PHP asli yang tersedia untuk tugasan ini?
Jawapan:
Ya, PHP mempunyai fungsi dan perpustakaan terbina dalam yang boleh digunakan untuk menukar PNG imej ke format JPG dengan tahap pemampatan yang berbeza-beza. Berikut ialah penjelasan terperinci dan coretan kod sampel untuk mencapai matlamat ini:
Kod:
<code class="php"><?php // Convert PNG to JPG with transparency preserved in white $filePath = 'your_png_file.png'; $image = imagecreatefrompng($filePath); $bg = imagecreatetruecolor(imagesx($image), imagesy($image)); imagefill($bg, 0, 0, imagecolorallocate($bg, 255, 255, 255)); imagealphablending($bg, TRUE); imagecopy($bg, $image, 0, 0, 0, 0, imagesx($image), imagesy($image)); imagedestroy($image); $quality = 50; // 0 is worst/smaller file, 100 is best/larger file imagejpeg($bg, $filePath . ".jpg", $quality); imagedestroy($bg); ?></code>
Penjelasan:
Kod ini menunjukkan cara menukar imej PNG kepada JPG dengan mengekalkan maklumat ketelusan. Ia memulakan pustaka GD dan memuatkan imej PNG ke dalam sumber. Imej kosong dibuat dengan dimensi yang sama dan diisi dengan warna putih untuk mengendalikan ketelusan. Imej PNG kemudiannya disalin ke imej kosong dan fungsi imagejpeg perpustakaan GD digunakan untuk menyimpannya sebagai fail JPG.
Parameter $quality membolehkan anda menentukan tahap mampatan output JPG, di mana 0 mewakili kualiti terburuk (saiz fail terkecil) dan 100 mewakili kualiti terbaik (saiz fail terbesar). Melaraskan nilai ini boleh mengawal keseimbangan antara kualiti imej dan saiz fail.
Atas ialah kandungan terperinci Bolehkah saya menukar fail PNG kepada JPG dalam PHP dengan pemampatan sambil mengekalkan kualiti?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!