


Wie kann ich den Bildzuschnitt in PHP für große Bilder optimieren und gleichzeitig das Seitenverhältnis beibehalten?
Nov 03, 2024 pm 05:25 PMBildzuschnitt 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
- Wir berechnen das ursprüngliche Seitenverhältnis (original_aspect) und das Zielseitenverhältnis (thumb_aspect), um die neuen Abmessungen des Bildes zu bestimmen.
- Wir prüfen, ob das Originalbild im Hinblick auf das Seitenverhältnis breiter als das Miniaturbild ist.
- Wenn das Originalbild breiter ist, stellen wir ein Stellen Sie die neue Höhe so ein, dass sie mit der Höhe des Miniaturbilds übereinstimmt, und berechnen Sie die neue Breite proportional.
- Wenn das Miniaturbild breiter ist, stellen wir die neue Breite so ein, dass sie mit der Breite des Miniaturbilds übereinstimmt, und berechnen die neue Höhe proportional.
- Wir erstellen ein neues Bild ($thumb) mit den gewünschten Miniaturbildabmessungen.
- Wir verwenden imagecopyresampled(), um die Größe des Originalbilds zu ändern und es in das neue Miniaturbild zuzuschneiden, wobei das Seitenverhältnis beibehalten wird.
- Endlich , speichern wir das zugeschnittene Miniaturbild in der angegebenen Datei.
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!

Heißer Artikel

Hot-Tools-Tags

Heißer Artikel

Heiße Artikel -Tags

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

11 beste PHP -URL -Shortener -Skripte (kostenlos und Premium)

Arbeiten mit Flash -Sitzungsdaten in Laravel

Vereinfachte HTTP -Reaktion verspottet in Laravel -Tests

Curl in PHP: So verwenden Sie die PHP -Curl -Erweiterung in REST -APIs

Erstellen Sie eine React -App mit einem Laravel -Back -Ende: Teil 2, reagieren

12 Beste PHP -Chat -Skripte auf Codecanyon
