Bagaimana untuk Memangkas Imej Besar dengan Berkesan dalam PHP?

Susan Sarandon
Lepaskan: 2024-11-03 18:49:02
asal
993 orang telah melayarinya

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

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!

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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!