Bagaimana untuk Membuat Imej Kecil Berkadar dalam PHP untuk Imej Besar?

DDD
Lepaskan: 2024-11-05 19:29:02
asal
753 orang telah melayarinya

How to Create Proportional Thumbnails in PHP for Large Images?

Mencipta Imej Kecil Berskala dalam PHP

Coretan kod yang disediakan berjaya memangkas imej dalam dimensi tertentu. Walau bagaimanapun, untuk imej yang lebih besar, ia mungkin tidak menghasilkan hasil yang diingini. Untuk menangani isu ini, anda perlu mengubah saiz imej terlebih dahulu, memastikan bahawa dimensi yang lebih kecil bagi imej yang diubah saiz sepadan dengan dimensi lakaran kecil yang sepadan.

Untuk mencipta lakaran kecil berkadar, ikut langkah berikut:

  1. Tentukan nisbah bidang imej sumber dan lakaran kecil yang dikehendaki.
  2. Bandingkan nisbah bidang. Jika imej sumber lebih luas, hitung ketinggian dan lebar baharu dengan sewajarnya. Sebaliknya, jika lakaran kecil lebih lebar, hitung lebar dan tinggi baharu.
  3. Buat imej baharu dengan dimensi yang dikira.
  4. Lakukan operasi pensampelan semula untuk mengubah saiz imej sumber agar sesuai dengan dimensi baharu sambil mengekalkan nisbah bidang.
  5. Pangkas imej yang diubah saiz kepada dimensi lakaran kecil yang ditentukan.
  6. Simpan imej yang dipangkas sebagai lakaran kecil.

Berikut ialah contoh kod yang dikemas kini yang melaksanakan langkah-langkah berikut:

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

Dengan memasukkan saiz semula imej ke dalam proses penjanaan lakaran kecil, adalah mungkin untuk mencipta lakaran kecil yang berkadar baik yang bebas daripada saiz imej asal.

Atas ialah kandungan terperinci Bagaimana untuk Membuat Imej Kecil Berkadar dalam PHP untuk Imej Besar?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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