Avatar billede internet Nybegynder
26. januar 2008 - 22:13 Der er 10 kommentarer og
1 løsning

Resize billede - dårlig kvalitet

Jeg har denne del af et upload script, der giver et lille problem.

Nedestående kode virker fint, den resizer billedet der er blevet uploaded, og gemmer det som et nyt billede, problemmet er bare at det nye billeder er i dårlig kvalitet.

Se denne side, som eksempel på hvad jeg mener:
http://emilchristiansen.dk/upload.htm

er der nogle der kan hjælpe ?


list($bredde, $hojde) = getimagesize("pictures/$filename"); //Find højden og bredden på det billede jeg vil resize
$forhold = $hojde/$bredde; //Hvor stor er højden i forhold til bredden?

//Find den nye højde og bredde
$bredde_ny = 300;
$hojde_ny = round($bredde_ny*$forhold);

//Load/opret billeder
$source = imagecreatefromjpeg("pictures/$filename");
$destination = imagecreate($bredde_ny, $hojde_ny);
Avatar billede olebole Juniormester
26. januar 2008 - 23:40 #1
Avatar billede zurekk Nybegynder
27. januar 2008 - 11:50 #2
Hvis du gemmer billedet som jpg/jpeg med imagejpeg(), så skal du huske at sætte kvalitets-parameteren til 100 :-)
Avatar billede zurekk Nybegynder
27. januar 2008 - 11:51 #3
Glem ovenstående, det er et farveproblem der er snakke om :)
Avatar billede internet Nybegynder
27. januar 2008 - 12:44 #4
Koden i den artikel som olebole linker til ser godt nok noget kompliseret ud.

Jeg kan se at jeg glemte noget af koden i den første post:

list($bredde, $hojde) = getimagesize("pictures/$filename"); //Find højden og bredden på det billede jeg vil resize
$forhold = $hojde/$bredde; //Hvor stor er højden i forhold til bredden?

//Find den nye højde og bredde
$bredde_ny = 300;
$hojde_ny = round($bredde_ny*$forhold);

//Load/opret billeder
$source = imagecreatefromjpeg("pictures/$filename");
$destination = imagecreate($bredde_ny, $hojde_ny);

//Resize
imagecopyresampled($destination, $source, 0, 0, 0, 0, $bredde_ny, $hojde_ny, $bredde, $hojde);

//Gem
imagejpeg($destination, "pictures/thumbs/$filename");

Er den en der gider at forklare mig, hvordan koden i artiklen virker.
Hvordan definerer jeg hvor den skal gemme det det nye billede?
Avatar billede zurekk Nybegynder
27. januar 2008 - 12:54 #5
Prøv at ændre "imagejpeg($destination, "pictures/thumbs/$filename");" til "imagejpeg($destination, "pictures/thumbs/$filename", 100);"
Avatar billede olebole Juniormester
27. januar 2008 - 14:24 #6
Hvor kompliceret, koden ser ud, betyder jo intet, når man blot kopierer og paste'er den - og funktionskaldet er jo ganske lige til at håndtere:
    resize( $filename, $newfilename, $maxw, $maxh, 70 );

At komprimere et billede til webbrug med en quality på 100 er nok 'lettere' overkill  ;o)
Avatar billede zurekk Nybegynder
27. januar 2008 - 14:45 #7
Yea well, det var nu mere for at se om dét var problemet :)
Avatar billede zurekk Nybegynder
27. januar 2008 - 14:46 #8
Selvom jeg egentlig synes 100 er helt fint til webbrug også.

70 og derunder, kan let komme til at se udhvisket og kedeligt ud.

Men det er vel lidt en smagssag :)
Avatar billede dkfire Nybegynder
27. januar 2008 - 15:29 #9
Jeg vil nok ændre:
$destination = imagecreate($bredde_ny, $hojde_ny);
til:
$destination = imagecreatetruecolor($bredde_ny, $hojde_ny);
Avatar billede internet Nybegynder
27. januar 2008 - 17:16 #10
dkfire: det hjalp, nu bliver der oprettet et billede i fin kvalitet og i farve.

Du kan bare smide et svar.
Avatar billede dkfire Nybegynder
27. januar 2008 - 18:20 #11
Jamen jeg lægger et svar :-)
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

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



Seneste spørgsmål Seneste aktivitet
4 min siden win 10 vil ikke boote Af bb69 i Windows
I dag 11:20 Lenovo x390 Af tobberjas i PC
I dag 10:14 Alder i Excel Af Nanarsi i Excel
I dag 09:00 Flere linier på faneblad Af Peder Lund Nielsen i Excel
I går 21:35 Flash Player Af ErikHg i Andet software