Sprint
Erfahrenes Mitglied
Hallo zusammen,
ich arbeite zur Zeit an einer Seite, bei der zu einzelnen Artikeln ein Bild hochgeladen wird, das an anderen Stellen live per php verkleinert wird. Dazu verwende ich das folgende Script, das aber eine ziemlich miese Qualität erzeugt, wie man an dem anhängenden Beispiel sehen kann.
Nun meine Frage. Ist es möglich, die Qualität irgendwie zu verbessern, oder ist das einfach die Einschränkung von php? Merkwürdig ist auch, daß, egal ob das skalierte Bild als jpg oder als png ausgegeben wird, das praktisch identische Ergebnis bei rauskommt.
Viele Grüße,
Sprint
ich arbeite zur Zeit an einer Seite, bei der zu einzelnen Artikeln ein Bild hochgeladen wird, das an anderen Stellen live per php verkleinert wird. Dazu verwende ich das folgende Script, das aber eine ziemlich miese Qualität erzeugt, wie man an dem anhängenden Beispiel sehen kann.
PHP:
header("Content-Type:image/png", true);
//$quality = 85;
$maxb = $_GET[maxb];
$maxh = $_GET[maxh];
$bild = imagecreatefromjpeg("$_GET[pfad]/$_GET[bildnr]");
$alt_breite = imagesx($bild);
$alt_hoehe = imagesy($bild);
if ($alt_breite <= $alt_hoehe){
$neu_hoehe = $maxh;
$neu_breite = round(($neu_hoehe / $alt_hoehe) * $alt_breite);
if ($neu_breite > $maxb){
$faktor = $neu_breite / $maxb;
$neu_breite = $maxb;
$neu_hoehe = $neu_hoehe * $faktor;
}
}else{
$neu_breite = $maxb;
$neu_hoehe = round(($neu_breite / $alt_breite) * $alt_hoehe);
if ($neu_hoehe > $maxh){
$faktor = $neu_hoehe / $maxh;
$neu_hoehe = $maxh;
$neu_breite = $neu_breite * $faktor;
}
}
$thumb = imagecreatetruecolor($neu_breite, $neu_hoehe);
imagecopyresampled($thumb, $bild, 0, 0, 0, 0, $neu_breite, $neu_hoehe, $alt_breite, $alt_hoehe);
imagepng($thumb);
//imagejpeg($thumb,"",$quality);
Nun meine Frage. Ist es möglich, die Qualität irgendwie zu verbessern, oder ist das einfach die Einschränkung von php? Merkwürdig ist auch, daß, egal ob das skalierte Bild als jpg oder als png ausgegeben wird, das praktisch identische Ergebnis bei rauskommt.
Viele Grüße,
Sprint