Hi,
ich möchte ein Bild, welches beispielsweise eine Grösse von 640 x 480 Pixel hat, auf eine Grösse von beispielsweise 200 x 200 Pixel bringen ohne das Seitenverhältnis zu verfäschen. Dazu hab ich jetzt folgenden Code geschrieben:
if ($width < $height)
{
$newwidth = 200;
$newheight = 200;
$faktor = 200 / $width;
$zh = round($height * $faktor);
$tocut = round(($zh - $newheight) / 2);
imagecopyresized($im,$src,0,0,0,$tocut,$newwidth,$newheight,$width,$height);
}
else
{
$newwidth = 200;
$newheight = 200;
$faktor = 200 / $height;
$zh = round($width * $faktor);
$tocut = round(($zh - $newwidth) / 2);
imagecopyresized($im,$src,0,0,$tocut,0,$newwidth,$newheight,$width,$height);
}
Die Variable $tocut enthält die Starkoordinate, falls Pixel vom Bild abgeschnitten werden müssen um das Seitenverhältnis zu behalten. Jedenfalls scheint irgendetwas mit den Parametern der "imágecopyresized"-Funktion nicht zu stimmen. Wenn ich ein Bild konvertiere, wird es zusammengequescht und nur von der oberen bzw. rechten Seite etwas abgeschnitten. Es soll jedoch von beiden Seiten gleichviel abgeschnitten werden. Falls noch irgendwas unklar ist, hier nochmal ein etwas ausführlicher Thread von gestern zu meinem Problem:
http://forum.de.selfhtml.org/?t=47556&m=259466
Wäre super, wenn Ihr mir helfen könntet.
Gruss,
Koontz