Bild in PHP zuschneiden: Größe für größere Bilder ändern
Der bereitgestellte Code schneidet Bilder effektiv zu, kann jedoch bei größeren Bildern Probleme bereiten. Um dies zu beheben, können wir das Bild „herauszoomen“. Das Ziel besteht darin, die Konsistenz der Bildgrößen vor dem Zuschneiden beizubehalten und so optimale Ergebnisse zu gewährleisten.
Der Schlüssel zur Größenänderung von Bildern für Miniaturansichten ist die Verwendung von imagecopyresampled(). Durch die Größenänderung sollte die kleinere Seite des Bildes an die entsprechende Seite des Daumens angepasst werden. Wenn das Quellbild beispielsweise 1280 x 800 Pixel und die Miniaturansicht 200 x 150 Pixel groß ist, sollte die Größe des Bildes vor dem Zuschneiden auf 240 x 150 Pixel geändert werden. Dadurch wird sichergestellt, dass das Seitenverhältnis erhalten bleibt.
Hier ist ein überarbeiteter Code, der diesen Ansatz verwendet:
<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>
Dieser Code ändert zuerst die Größe des Bildes und schneidet es dann zu. Durch Anpassen der Größenänderungsparameter können Sie das Seitenverhältnis steuern und eine einheitliche Größe für Miniaturansichten beibehalten.
Das obige ist der detaillierte Inhalt vonWie kann man große Bilder in PHP effektiv zuschneiden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!