Thumbs unterschiedliche Grössen

th-projekt

Grünschnabel
Hi
ich bin neu und hab mit PHP nicht viel Erfahrung.
vielleicht hab ich nicht richtig gesucht, auf jeden fall nicht gefunden.
Ich möchte thumbs erstellen, hab dazu auch ein code. Nur die Bilder werden immer gequetscht, da sie mal im Hochformat oder Querformat sind.
wie setze ich die Thumbgrösse auf ein seitenverhältniss und nicht auf eine vordeffinierte Grösse?
PHP:
 $PicPathIn="./images/";
  $PicPathOut="./Thumbs/";
  $size=getimagesize("$PicPathIn"."$bild");
  $breite=$size[0];
  $hoehe=$size[1];
  $neueBreite=145;
  $neueHoehe=100;
vielen dank im vorraus
 
Mit dem folgenden Code erstelle ich von den hochgeladenen Bildern Thumbnails mit einer Breite von 90 Pixeln, die Hoehe wird dabei anhand des Seitenverhaeltnisses berechnet.
PHP:
list($width,$height)=getimagesize("images/".$gallery['gallery']."/".$filename);
$sourceimage=imagecreatefromjpeg("images/".$gallery['gallery']."/".$filename);
$thumbwidth=90;
$thumbheight=round($thumbwidth*($height/$width));
$thumbimage=imagecreatetruecolor($thumbwidth,$thumbheight);
imagecopyresampled($thumbimage,$sourceimage,0,0,0,0,$thumbwidth,$thumbheight,$width,$height);
imagejpeg($thumbimage,"thumbs/".$gallery['gallery']."/".$filename);
 
Hallo!

Mein Vorschlag:
PHP:
<?php
$bild = "testbild.jpg";
 
$size = getimagesize($bild);
$breite = $size[0];
$hoehe = $size[1];
 
$max_size = 100;
 
if($breite > $hoehe) { // Breite grösser als Höhe?
    $ratio = $breite/$hoehe;
    $neuehoehe = $max_size/$ratio;
    echo '<img src="'.$bild.'" width="'.$max_size.'" height="'.$neuehoehe.'">';
} elseif($breite < $hoehe) { // Breite kleiner als Höhe?
    $ratio = $hoehe/$breite;
    $neuebreite = $max_size/$ratio;
    echo '<img src="'.$bild.'" width="'.$neuebreite.'" height="'.$max_size.'">';
} elseif(($breite > $max_size) AND ($hoehe > $max_size)) { // Breite und Höhe grösser als Maximalgrösse?
    echo '<img src="'.$bild.'" width="'.$max_size.'" height="'.$max_size.'">';
} else {
    // Breite und Höhe sind kleiner als die Maximalgrösse, daher wird das Bild in Originalgrösse angezeigt.
    echo '<img src="'.$bild.'" width="'.$breite.'" height="'.$hoehe.'">';
}
?>
Die Variablen in den <img>-Tags können ja für die Imagefunktionen von PHP weiterverarbeitet werden.

Gross Dr Dau
 
Zurück