Pangkas Imej dalam PHP: Saiz Semula untuk Imej yang Lebih Besar
Kod yang disediakan memangkas imej dengan berkesan tetapi mungkin bergelut dengan imej yang lebih besar. Untuk menangani perkara ini, kita boleh "zum keluar" imej. Objektifnya adalah untuk mengekalkan konsistensi dalam saiz imej sebelum memangkas, memastikan hasil yang optimum.
Kunci untuk mengubah saiz imej untuk lakaran kecil ialah menggunakan imagecopyresampled(). Operasi ubah saiz harus melaraskan bahagian yang lebih kecil pada imej agar sepadan dengan sisi ibu jari yang sepadan. Sebagai contoh, jika imej sumber ialah 1280x800px dan lakaran kecil ialah 200x150px, imej itu hendaklah diubah saiznya kepada 240x150px sebelum memangkas. Ini memastikan bahawa nisbah bidang kekal utuh.
Berikut ialah kod yang disemak menggunakan pendekatan ini:
<code class="php">$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 ) { // If image is wider than thumbnail (in aspect ratio sense) $new_height = $thumb_height; $new_width = $width / ($height / $thumb_height); } else { // If the thumbnail is wider than the image $new_width = $thumb_width; $new_height = $height / ($width / $thumb_width); } $thumb = imagecreatetruecolor( $thumb_width, $thumb_height ); // Resize and crop imagecopyresampled($thumb, $image, 0 - ($new_width - $thumb_width) / 2, // Center the image horizontally 0 - ($new_height - $thumb_height) / 2, // Center the image vertically 0, 0, $new_width, $new_height, $width, $height); imagejpeg($thumb, $filename, 80);</code>
Kod ini mengubah saiz imej dahulu, kemudian memangkasnya. Dengan melaraskan parameter ubah saiz, anda boleh mengawal nisbah bidang dan mengekalkan saiz yang konsisten untuk lakaran kenit.
Atas ialah kandungan terperinci Bagaimana untuk Memangkas Imej Besar dengan Berkesan dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!