HalloPHP

Thumbnails mit fester Größe erstellen

Codeschnipsel | letzte Änderung am 09. Juli '10 um 19:16 Uhr

Motivation

Um ein einheitliches Layout z.B. für Galerien zu gewährleisten, möchten wir unsere Vorschaubilder (Thumbnails) auf eine einheitliche Größe skalieren. Da nicht alle Bilder im selben Format vorliegen, bleibt es allerdings nicht aus, dass Teile des Bildes abgeschnitten werden müssen.

Der Codeschnipsel

Das Script arbeitet mit den Image-Funktionen der GD-Bibliothek, die seit PHP 4.3 in PHP enthalten ist oder auch manuell installiert werden kann: http://www.php.net/manual/de/book.image.php.

<?php
header
('Content-type: image/jpeg');

$image 'images/test.jpg'// Pfad zur Grafik

list($width$height) = getimagesize($image);

$new_width 120;
$new_height 170;

if (
$width $height $new_width $new_height) {
  
$height $new_height * ($width $new_width);
}
else if (
$width $height $new_width $new_height) {
  
$width $new_width * ($height $new_height);
}

$src imagecreatefromjpeg($image);
$dest imagecreatetruecolor($new_width$new_height);

imagecopyresized($dest$src0000$new_width$new_height$width$height);
imagejpeg($dest);

imagedestroy($dest);
imagedestroy($src);

Antworten

Uwe | verfasst am 26. Januar '11 um 18:13 Uhr

#1

Wenn du anstatt von imagecopyresized die Funktion imagecopyresampled nimmst wirst du noch bessere Ergebnisse erzielen.

php.net - imagecopyresampled