Pemotongan Imej dalam PHP
Apabila memangkas imej dalam PHP, anda mungkin menghadapi masalah, terutamanya apabila berurusan dengan imej yang besar. Satu penyelesaian ialah "mengecilkan imej".
Dalam kod contoh yang diberikan, imej dipangkas kepada saiz tetap (200x150), yang mungkin tidak sesuai dengan imej yang lebih besar. Untuk mendapatkan dimensi imej yang konsisten sebelum memangkas, adalah disyorkan untuk menggunakan fungsi imagecopyresampled().
Formula berikut boleh digunakan untuk menjana lakaran kenit:
$image = imagecreatefromjpeg($_GET['src']); $filename = 'images/cropped_whatever.jpg'; $thumb_width = 200; $thumb_height = 150; $width = imagesx($image); $height = imagesy($image); $original_aspect = $width / $height; $thumb_aspect = $thumb_width / $thumb_height; if ( $original_aspect >= $thumb_aspect ) { // 图像更宽(纵横比意义上) $new_height = $thumb_height; $new_width = $width / ($height / $thumb_height); } else { // 缩略图更宽 $new_width = $thumb_width; $new_height = $height / ($width / $thumb_width); } $thumb = imagecreatetruecolor( $thumb_width, $thumb_height ); // 调整大小并裁剪 imagecopyresampled($thumb, $image, 0 - ($new_width - $thumb_width) / 2, // 水平居中图像 0 - ($new_height - $thumb_height) / 2, // 垂直居中图像 0, 0, $new_width, $new_height, $width, $height); imagejpeg($thumb, $filename, 80);
Kod ini mengambil kira nisbah bidang imej, memastikan imej yang diubah saiz mempunyai nisbah bidang yang sama dengan saiz lakaran kecil, sekali gus mengelakkan herotan. Selepas mengubah saiz dan memotong, ia akan menghasilkan imej bersaiz konsisten tanpa mengira saiz imej asal.
Atas ialah kandungan terperinci Bagaimana untuk Mengekalkan Nisbah Aspek Imej Apabila Memangkas Imej dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!