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);
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!