[php] foto resizen, maar krijg slechte kwaliteit

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik probeer om met php van een foto ook een thumbnail te maken. Nu gebruik ik onderstaande functie, werkt verder wel helemaal, maar de thumbnail heeft slechte kleuren (net of het maar een paar kleuren gebruikt). Iemand idee hoe dit kan?

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
function makeThumb($file) { 
    header("Content-type: image/jpeg"); 
    header ("Cache-Control: no-cache"); 

    $sz = 90; 
    $im = imagecreatefromjpeg("./$file"); 
    $im_width=imageSX($im); 
    $im_height=imageSY($im); 

    // work out new sizes 
    if($im_width >= $im_height) { 
        $factor = $sz / $im_width; 
        $new_width = $sz; 
        $new_height = $im_height * $factor; 
    } else { 
        $factor = $sz / $im_height; 
        $new_height = $sz; 
        $new_width = $im_width * $factor; 
    } 

    // resize 
    $new_im=ImageCreate($new_width,$new_height); 
    ImageCopyResized($new_im, $im, 0, 0, 0, 0, $new_width, $new_height, $im_width, $im_height); 
    ImageJpeg($new_im,'',100); // quality 100 

    // cleanup 
    ImageDestroy($im); 
    ImageDestroy($new_im); 
}

Acties:
  • 0 Henk 'm!

  • marty
  • Registratie: Augustus 2002
  • Laatst online: 27-03-2023
die quality van 100 bestaat niet (staat ook ergens op php.net)
je kunt 'm beter op 95 zetten geloof ik (of anders 90)

en als je echt goede kwaliteit wil moet je GD2 ff installen

Acties:
  • 0 Henk 'm!

Verwijderd

Want met GD2 kan je 'naaste buur' resizen (correct if I'm wrong).

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
heb nog even verder gezocht, heeft vooral te maken met truecolor, zie [rml][ php] probleem met image (thumbnail) functie[/rml]

Acties:
  • 0 Henk 'm!

  • Stoffel
  • Registratie: Mei 2001
  • Laatst online: 10:37

Stoffel

Engineering the impossible

pak maar eens ImageCopyResampled ipv resized, dan is het als het goed is opgelost :)
en je kunt idd ook ImageCreateTrueColor ipv imagecreate gebruiken

Acties:
  • 0 Henk 'm!

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

_-SToFFeL-_ schreef op 06 January 2003 @ 11:17:
pak maar eens ImageCopyResampled ipv resized, dan is het als het goed is opgelost :)
en je kunt idd ook ImageCreateTrueColor ipv imagecreate gebruiken

Als ie over GD2 beschikt...

Acties:
  • 0 Henk 'm!

  • Martin Sturm
  • Registratie: December 1999
  • Laatst online: 09-09 17:23
Een andere (snellere en makkelijkere imho) oplossing is om imagemagick te gebruiken.
Ten eerste is de kwaliteit beter (vooral als je een klein plaatje groter maakt ;) ), daarnaast is imagemagick (bij mij iig) veel sneller (PII-300) en het is ook niet echt moeilijk in het gebruik. Het enige nadeel is dat je ff een dir moet hebben waar apache schrijfrechten heeft. Als dat het geval is kun je gewoon
PHP:
1
exec("convert -size {$new_width}x{$new_height} ./$file -resize {$new_width}x{$new_height} ./$newfilenaam");

gebruiken :)

Disclaimer: Fouten voorbehouden. Ik heb dit ff uit m'n hoofd neergetypt

[ Voor 11% gewijzigd door Martin Sturm op 06-01-2003 12:57 ]


Acties:
  • 0 Henk 'm!

  • Stoffel
  • Registratie: Mei 2001
  • Laatst online: 10:37

Stoffel

Engineering the impossible

laat ik het zo zeggen:

ik ken dat exacte scriptje wel, heb ik zelf ook ooit eens ergens voor gebruikt, en als hij GD1 zou hebben zou dit werken.
ik heb na migratie van GD2 exact hetzelfde meegemaakt met dit script nl :)

offtopic:
niet dat ik nu nog geleende scriptjes gebruik trouwens...

Acties:
  • 0 Henk 'm!

  • Martin Sturm
  • Registratie: December 1999
  • Laatst online: 09-09 17:23
Die fouten in de kleuren worden trouwens veroorzaakt doordat er geen gebruik wordt gemaakt van ImageCreateTrueColor onder GD2
Pagina: 1