Nico Ueckermann: Bildskalierung - bin ich zu blöd?

Hallo,

ich habe hier ein kleines Skript, welches mir Bilder skaliert anzeigen soll:

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

$src_img = imagecreatefromjpeg("irgendwas/$show");

$size = getimagesize("irgendwas/$show");
$ratio=((int)($width/$size[0]*$size[1]));

$dst_img = imagecreate($width,$ratio);

imagecopyresized($dst_img,$src_img,0,0,0,0,$width,$ratio,$size[0],$size[1]);

imagejpeg($dst_img);

ImageDestroy($dst_img);
ImageDestroy($src_img);
?>

Das Problem ist, das ich immer wieder rechts und/oder unten so feine dunkle Linien in Abhängigkeit von $width bekomme:

http://www.vendeo.de/image.php?show=BZbgRQAgKwzGZr.jpg&width=150

Hat einer von euch vielleicht einen Rat?

MfG,

Nico

  1. Warum machst du das nicht einfach mit den HTML angaben height und width im img-tag?

    1. Warum machst du das nicht einfach mit den HTML angaben height und width im img-tag?

      Weil ich dadurch bei herunterskalierten Bildern die Bandbreite des Users verschwende.

      Grüße,

      Nico

      1. Weil ich dadurch bei herunterskalierten Bildern die Bandbreite des Users verschwende.

        wird dir sicherleich helfen...

        => http://www.dclp-faq.de/q/q-grafik-verkleinern.html

  2. Moin!

    imagecopyresized($dst_img,$src_img,0,0,0,0,$width,$ratio,$size[0],$size[1]);

    Diese Funktion ist für ein "schönes" Skalieren ziemlich unbrauchbar - sie arbeitet schnell und im Prinzip nicht anders als die Browservariante auch - nämlich häßlich. Ich vermute, deine Streifen resultieren daher, dass du immer mal wieder auf ungünstige Skalierungsverhältnisse triffst.

    In den Useranmerkungen auf http://www.php.net zu diesem Befehl stehen alternative Funktionen und Tipps, wie man "schön" (aber langsamer) skalieren kann.

    - Sven Rautenberg