Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich den Bildzuschnitt in PHP für große Bilder optimieren und gleichzeitig das Seitenverhältnis beibehalten?
Bildzuschnitt in PHP: Optimierung für große Bilder und Beibehaltung des Seitenverhältnisses
Das bereitgestellte Code-Snippet schneidet Bilder effektiv zu, aber die Ergebnisse können sich verschlechtern wenn es auf größere Bilder angewendet wird. Um dieses Problem anzugehen, werden wir einen alternativen Ansatz untersuchen, bei dem die Größe des Originalbilds vor dem Zuschneiden geändert wird, um konsistente und optimale Ergebnisse zu erzielen.
Größenänderung zur Beibehaltung des Seitenverhältnisses
Vorher Beim Zuschneiden eines Bildes ist es wichtig, das Seitenverhältnis beizubehalten, um Verzerrungen zu vermeiden. Das Seitenverhältnis ist das Verhältnis der Breite des Bildes zur Höhe. Indem wir die Größe des Bildes so ändern, dass die kleinere Seite den gewünschten Zuschnittabmessungen entspricht, können wir das ursprüngliche Seitenverhältnis beibehalten.
Code-Implementierung
Um die Größenänderung und das Zuschneiden von Bildern zu implementieren, Wir werden den folgenden Teil des bereitgestellten Codes ändern:
<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>
Erklärung
Durch diesen Ansatz können wir größere Bilder effektiv zuschneiden und das Seitenverhältnis beibehalten, wodurch konsistente und qualitativ hochwertige Ergebnisse geliefert werden.
Das obige ist der detaillierte Inhalt vonWie kann ich den Bildzuschnitt in PHP für große Bilder optimieren und gleichzeitig das Seitenverhältnis beibehalten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!