Avatar billede stigma Nybegynder
02. oktober 2011 - 17:17 Der er 7 kommentarer og
1 løsning

imagejpeg

Hej.

Jeg er igang med at lave en class, der resizer og cropper, og det virker faktisk som det skal - Bortset fra at mine billeder bliver UTROLIGT grimme, når de er blevet behandlet...

Jeg bruger:
imagecreatefromjpeg(filnavn)
imagecreatetruecolor(bredde, højde)
imagecopyresampled(...)
imagejpeg(filnavn,filnavn,kvalitet)

eksemplet kan ses her: http://87.55.18.166/class.image/thumb.jpg
Avatar billede The_Buzz Novice
02. oktober 2011 - 19:46 #1
kvalitet skal vel være omkring de 70-90
Avatar billede stigma Nybegynder
02. oktober 2011 - 20:01 #2
Øøøh? - Har skam skrevet tal i stedet for "kvalitet" :) - Jeg har sågar lavet en løkke hvor den prøver med kvaliteten fra 0 t.o.m 100 - Uden at jeg kunne se nogle ændringer :/
Avatar billede majbom Novice
02. oktober 2011 - 20:09 #3
måske du kan finde noget brugbart her: http://www.eksperten.dk/guide/1201
Avatar billede stigma Nybegynder
02. oktober 2011 - 23:31 #4
Tank for guiden splazz - Har kigget på den, og syntes ikke rigtig jeg kunne finde løsningen i den.. Dog prøvede jeg at konvertere mit billede til png med PHP, og det blev straks knivskarp, dog fylder det røv meget nu...

Kan det virkelig passe jeg skal bruge ImageMagick, før at jeg kan få nogle jpg billeder i ordenlig kvalitet, uden det "pixel sne"?

Jeppe
Avatar billede coderdk Praktikant
03. oktober 2011 - 22:05 #5
Jeg er sikker på at du har gjort det korrekt, men vil bare lige påpege at du har skrevet

imagejpeg(filnavn,filnavn,kvalitet)

hvor du mener imagejpeg(image_resource,filnavn,kvalitet), e.g.:

$imgrc = imagecreatetruecolor...
...
imagejpeg( $imgrc, "nyfil.jpg", 85 );

Du burde altså kunne se tydelig forskel fra lav kvalitet til højere...
Avatar billede stigma Nybegynder
04. oktober 2011 - 12:43 #6
Jeg fandt ud af problemet, men hvorfor det er sådan, det kan jeg virkelig ikke svarer på :/

Når jeg gemte det resized billede, bruge jeg en switch() til at tjekke hvilken type mit billede skulle gemmes som:
[code]
switch ($extension) {
    case '.jpg':
    case '.jpeg':
        imagejpeg($src,"image.jpg",100);
        break;
    case '.png':
        imagepng($src,"image.png",100);
    default:
        break;
    }
[/code]
Jeg prøvede så at skifte dette ud med if sætninger i stedet som følgende:
[code]
if (($ext == '.jpg') || ($ext == '.jpeg')) {
    imagejpeg($this->newImage, $savePath,100);
} else if ($ext == '.png') {
    imagepng($this->newImage, $savePath, 9);
}
[/code]
Og dette løste faktisk problemet, billederne bliver ikke sløret længere. Hvad det går galt, har jeg virkelig ikke en logisk forklaring på.. :l
Avatar billede stigma Nybegynder
04. oktober 2011 - 12:43 #7
Lukker.
Avatar billede majbom Novice
04. oktober 2011 - 19:06 #8
det har ikke noget at gøre med $ext kontra $extension?
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