webForumDet fria alternativet

PHP och GD

2 svar · 214 visningar · startad av greyhound

greyhoundMedlem sedan maj 20031 472 inlägg
#1

Jag har lite problem när jag skapar tumbnails med hjälp av GD i PHP.
Bilderna bild väldigt pixliga.

Jag använder följande funktion för att ändra storlek på bilderna:

function ImageResize($sfile,$dfile,$maxwidth,$maxheight) {
  if (preg_match("/.jpg/i", $sfile)) {
    $format = 'image/jpeg';
  } elseif (preg_match("/.gif/i", $sfile)) {
    $format = 'image/gif';
  } elseif (preg_match("/.png/i", $sfile)) {
    $format = 'image/png';
  }
  if ($format != '') {
    switch($format) {
    case 'image/jpeg':
      $simg = imagecreatefromjpeg($sfile);
      break;
    case 'image/gif';
      $simg = imagecreatefromgif($sfile);
      break;
    case 'image/png':
      $simg = imagecreatefrompng($sfile);
      break;
    }
    list($currwidth, $currheight) = getimagesize($sfile);
    if ($currheight > $currwidth) {
      $zoom = $maxheight / $currheight;
      $newheight = $maxheight;
      $newwidth = $currwidth * $zoom;
    } else {
      $zoom = $maxwidth / $currwidth;
      $newwidth = $maxwidth;
      $newheight = $currheight * $zoom;
    }

    $dimg = imagecreatetruecolor($newwidth, $newheight);
    imagecopyresized($dimg, $simg, 0, 0, 0, 0, $newwidth, $newheight, $currwidth, $currheight);

    imagejpeg($dimg,$dfile);

    ImageDestroy($simg);
    ImageDestroy($dimg);
  }
}

Någon som har några erfarenheter av detta också eller kanske bara några tips?

DufferMedlem sedan mars 2003429 inlägg
#2

Du har glömt sista parametern på imagejpg()... testa att sätta en kvalité på 80 eller högre så ska det förhoppningsvis bli bättre

greyhoundMedlem sedan maj 20031 472 inlägg
#3

Jo bilden blev bättre, fast bara lite på det ställe där jag tyckte den var pixlig ;)

124 ms totalt · 3 externa anrop · v20260731065814-full.0e50b1ef
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
121 ms — hämta tråd, inlägg och bilagor (db)