Skalierte Miniaturansichten in PHP erstellen
Das bereitgestellte Code-Snippet schneidet ein Bild erfolgreich innerhalb einer bestimmten Dimension zu. Bei größeren Bildern führt dies jedoch möglicherweise nicht zu den gewünschten Ergebnissen. Um dieses Problem zu beheben, muss zunächst die Größe des Bildes geändert werden. Dabei muss sichergestellt werden, dass die kleinere Größe des geänderten Bildes mit der entsprechenden Größe der Miniaturansicht übereinstimmt.
Um proportionale Miniaturansichten zu erstellen, führen Sie die folgenden Schritte aus:
Hier ist ein aktualisiertes Codebeispiel das die folgenden Schritte implementiert:
<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>
Durch die Einbindung der Bildgrößenänderung in den Miniaturbild-Generierungsprozess ist es möglich, gut proportionierte Miniaturbilder zu erstellen, die unabhängig von der ursprünglichen Bildgröße sind.
Das obige ist der detaillierte Inhalt vonWie erstelle ich in PHP proportionale Miniaturansichten für große Bilder?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!