Rumah > pembangunan bahagian belakang > tutorial php > Bagaimana untuk Mengekalkan Nisbah Aspek Imej Apabila Memangkas Imej dalam PHP?

Bagaimana untuk Mengekalkan Nisbah Aspek Imej Apabila Memangkas Imej dalam PHP?

Patricia Arquette
Lepaskan: 2024-11-03 16:46:03
asal
504 orang telah melayarinya

How to Maintain Image Aspect Ratio When Cropping Images in PHP?

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

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!

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