Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Memangkas Imej Besar dengan Berkesan dalam PHP?

Bagaimana untuk Memangkas Imej Besar dengan Berkesan dalam PHP?

Susan Sarandon
Susan Sarandonasal
2024-11-03 18:49:02995semak imbas

How to Effectively Crop Large Images in PHP?

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!

Kenyataan:
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