Avatar billede biskoppen Nybegynder
19. maj 2007 - 14:17 Der er 6 kommentarer og
1 løsning

Når jeg resizer et billede med GD ligner outputtet en dårlig GIF?

Mit output billede ligner en GIF i 8 farver.

Nogen idéer?

$pic = 'images/main.jpg';
$thumb = 'thumbslogo.jpg';    //Billede der skal skrives til

//Henter størrelsen på billedet her og lægger det i et array
$size = getimagesize($pic);

//Udskrive størrelserne på billedet
echo "<br />" .$size[0]. "<br />";    //Width
echo "" .$size[1]. "<br />";            //Height

//finder nye størrelser

$new_width = $size[0] * 20 /100;    //Gør billede width 20% mindre
$new_height = $size[1] * 20 /100;    //Gør billede height 20% mindre


   


$pic_1 = imagecreatefromjpeg($pic);
$dest = imagecreate($new_width, $new_height);

imagecopyresized($dest, $pic_1, 0, 0, 0, 0, $new_width, $new_height, $size[0], $size[1]);
imagejpeg($dest,$thumb);


// Vis vha html
echo '<img src="'.$thumb.'">';
Avatar billede whatever Nybegynder
19. maj 2007 - 14:58 #1
Prøv at benytte imagecopyresampled() i stedet for imagecopyresized(). Det burde give en bedre kvalitet. Se http://dk.php.net/manual/da/function.imagecopyresampled.php.
Avatar billede biskoppen Nybegynder
19. maj 2007 - 15:02 #2
Resultatet bliver det samme
Avatar billede biskoppen Nybegynder
19. maj 2007 - 15:04 #3
Og dog... stik mig lige et svar mere
Avatar billede whatever Nybegynder
19. maj 2007 - 15:10 #4
Du kan evt. også prøve at ændre på jpeg kvaliteten der outputtes. Se http://dk.php.net/manual/da/function.imagejpeg.php.
Avatar billede whatever Nybegynder
19. maj 2007 - 15:11 #5
Og endelig kan du prøve at ændre imagecreate() til imagecreatetrucolor(). Se http://dk.php.net/manual/da/function.imagecreatetruecolor.php.
Avatar billede whatever Nybegynder
19. maj 2007 - 15:12 #6
Jeg tror faktisk at det er imagecreate() der giver problement. Mon ikke den kun arbejder i 8 bit farver altså 256 farver.
Avatar billede lolman Nybegynder
19. maj 2007 - 17:03 #7
skift $dest = imagecreate($new_width, $new_height);
ud med $dest = imagecreatetruecolor($new_width, $new_height);

og hvis det skal være super godt så:

skift imagecopyresized($dest, $pic_1, 0, 0, 0, 0, $new_width, $new_height, $size[0], $size[1]);

ud med imagecopyresampled($dest, $pic_1, 0, 0, 0, 0, $new_width, $new_height, $size[0], $size[1]);  det giver flottere skrå streger og sådan.. men får også billedet til at fylde lidt merem.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester