# Bildergrößen proportional verkleinern



## shorty (10. Februar 2005)

Hallo,
nachdem ich nach langem Studieren endlich herausgefunden habe, dass mein Problem (hier zu begutachten ), doch auf die Berechnung zurückzuführen ist, habe ich dort weiterhin nach der möglichen Fehlerquelle gesucht, bin aber bis jetzt noch zu keinem Ergebnis gekommen. Gesucht habe ich hier in dem Forum auch schon. Es wurden mir auch einige Themen genannt, in welchen es um die proportionale Verkleinerung von Bildern ging, aber dort wurde nicht unterschieden, um was für eine Art Bild es sich handelt. So gesehen gibt es zwei verschiedene Arten von Bildern:
1. Bilder, dessen Höhe größer ist als die Weite und
2. Bilder, dessen Weite größer ist als die Höhe.

Dafür muss man natürlich eine Anweisung generieren, die sowas unterscheidet und dann in dieser Anweisung die jeweilige Berechnung durchführen. Bis jetzt habe ich es versucht, so zu realisieren, jedoch zickt PHP in der Hinsicht einwenig rum :

Der Code stammt aus einer Klasse, die ich geschrieben habe:

```
...
$imageinfo = getimagesize($image);
$width = $imageinfo[0];
$height = $imageinfo[1];
#
if($height > $width) {
#
  $divide = $height / $this->newheight;
  $this->newwidth = $width / $divide;
#
  $resized = "<img src=\"".$image."\" border=\"0\" width=\"".$this->newwidth."\" height=\"".$this->newheight."\" title=\"".$alttext."\" style=\"border: 1px #000 solid\">";
#
} else {
#
  $divide = $width / $this->newwidth;
  $this->newheight = $height / $divide;
#
  $resized = "<img src=\"".$image."\" border=\"0\" width=\"".$this->newwidth."\" height=\"".$this->newheight."\" title=\"".$alttext."\" style=\"border: 1px #000 solid\">";
#
}
#
return $resized;
...
```

Vielleicht kann mir ja jemand helfen. Wäre auf jedenfall sehr nett .
Danke schonmal im Voraus.


----------



## flooo (10. Februar 2005)

```
function thumb($file, $save, $width, $height, $prop = TRUE) {
    // Requires GD-Lib > 2.0
    // Ist $prop=TRUE, so werden die Proportionen des Bildes
    // auch im Thumbnail eingehalten

    @unlink($save);
    $infos = @getimagesize($file);
    if($prop) {
        // Proportionen erhalten
        $iWidth = $infos[0];
        $iHeight = $infos[1];
        $iRatioW = $width / $iWidth;
        $iRatioH = $height / $iHeight;
        if ($iRatioW < $iRatioH)
        {
        	$iNewW = $iWidth * $iRatioW;
	        $iNewH = $iHeight * $iRatioW;
        } else {
        	$iNewW = $iWidth * $iRatioH;
	        $iNewH = $iHeight * $iRatioH;
        } // end if
    } else {
        // Strecken und Stauchen auf Größe
        $iNewW = $width;
        $iNewH = $height;
    }

    if($infos[2] == 2) {
        // Bild ist vom Typ jpg
        $imgA = imagecreatefromjpeg($file);
        $imgB = imagecreatetruecolor($iNewW,$iNewH);
        imagecopyresampled($imgB, $imgA, 0, 0, 0, 0, $iNewW,
                           $iNewH, $infos[0], $infos[1]);
        imagejpeg($imgB, $save);
      	return TRUE;
    } elseif($infos[2] == 1) {
        // Bild ist vom Typ gif
        $imgA = imagecreatefromgif($file);
        $imgB = imagecreatetruecolor($iNewW, $iNewH);
        imagecopyresampled($imgB, $imgA, 0, 0, 0, 0, $iNewW,
                           $iNewH, $infos[0], $infos[1]);
        imagegif($imgB, $save);
    } else {
        return FALSE;
    }
}
```
die 
flooo


----------

