Heim >Backend-Entwicklung >PHP-Tutorial >Wie optimiert man den Bildzuschnitt in PHP für große Bilder?

Wie optimiert man den Bildzuschnitt in PHP für große Bilder?

Barbara Streisand
Barbara StreisandOriginal
2024-11-04 11:27:02796Durchsuche

How to Optimize Image Cropping in PHP for Large Images?

Bildzuschnitt in PHP für große Bilder optimieren

Der bereitgestellte Code schneidet Bilder effektiv zu, stößt jedoch beim Umgang mit größeren Bildern auf Einschränkungen. Um dieses Problem anzugehen, müssen wir Techniken zum „Herauszoomen“ oder zum Ändern der Größe von Bildern vor dem Zuschneiden erforschen. Dadurch werden konsistente Ergebnisse unabhängig von der Bildgröße gewährleistet.

Um Miniaturansichten zu erstellen, besteht der erste Schritt darin, die Größe des Bildes mit imagecopyresampled() zu ändern. Bestimmen Sie die kleinere Größe Ihres Bildes und die entsprechende Größe Ihres Miniaturbilds. Wenn Ihr Bild beispielsweise 1280 x 800 Pixel groß ist und die Miniaturansicht 200 x 150 Pixel groß ist, ändern Sie die Größe des Bildes auf 240 x 150 Pixel. Dadurch bleibt das Seitenverhältnis des Bildes erhalten.

Hier ist eine allgemeine Formel zum Erstellen von Miniaturansichten:

<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) {
    // Image wider than thumbnail
    $new_height = $thumb_height;
    $new_width = $width / ($height / $thumb_height);
} else {
    // Thumbnail wider than 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, // Horizontally center the image
    0 - ($new_height - $thumb_height) / 2, // Vertically center the image
    0, 0,
    $new_width, $new_height,
    $width, $height);
imagejpeg($thumb, $filename, 80);</code>

Dieser Code sollte die Größe von Bildern effektiv ändern und Bilder zuschneiden, um optimale Ergebnisse zu erzielen.

Das obige ist der detaillierte Inhalt vonWie optimiert man den Bildzuschnitt in PHP für große Bilder?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn