Heim > Backend-Entwicklung > PHP-Tutorial > Wie behalte ich das Bildseitenverhältnis beim Zuschneiden von Bildern in PHP bei?

Wie behalte ich das Bildseitenverhältnis beim Zuschneiden von Bildern in PHP bei?

Patricia Arquette
Freigeben: 2024-11-03 16:46:03
Original
545 Leute haben es durchsucht

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

Bildzuschnitt in PHP

Beim Zuschneiden von Bildern in PHP können Probleme auftreten, insbesondere bei großen Bildern. Eine Lösung besteht darin, das Bild zu verkleinern.

Im angegebenen Beispielcode wird das Bild auf eine feste Größe (200 x 150) zugeschnitten, die möglicherweise nicht für größere Bilder geeignet ist. Um vor dem Zuschneiden konsistente Bildabmessungen zu erhalten, wird empfohlen, die Funktion imagecopyresampled() zu verwenden.

Die folgende Formel kann zum Generieren von Miniaturansichten verwendet werden:

$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);
Nach dem Login kopieren

Dieser Code berücksichtigt das Bildseitenverhältnis und stellt sicher, dass das in der Größe geänderte Bild dasselbe Seitenverhältnis wie die Miniaturansichtsgröße hat. und verhindert so Verzerrungen. Nach der Größenänderung und dem Zuschneiden wird ein Bild mit einheitlicher Größe erstellt, unabhängig von der ursprünglichen Bildgröße.

Das obige ist der detaillierte Inhalt vonWie behalte ich das Bildseitenverhältnis beim Zuschneiden von Bildern in PHP bei?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage