[PHP & GDlibrary] Gemaakte thunbnails worden zwart

Pagina: 1
Acties:

Onderwerpen


Verwijderd

Topicstarter
Ik heb de volgende php-functie aangemaakt om plaatjes te kunnen resizen naar thumbnails formaat:

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
30
<?
function ImgResize($sfile,$dfile,$maxwidth,$maxheight) 
{ 
header("Content-type: image/jpeg"); 
$simg =  ImageCreateFromJPEG($sfile); 
$currwidth=imagesx($simg);
$currheight=imagesy($simg); 

if ($currwidth > $currheight && $currwidth > $maxwidth) {
   $percent = ($maxwidth * 100) / $currwidth;
   $nwidth = $maxwidth;
   $nheight = ($percent * $currheight) / 100;
} elseif ($currwidth < $currheight && $currheight > $maxheight) {
   $percent = ($maxheight * 100) / $currheight;
   $nheight = $maxheight;
   $nwidth = ($percent * $currwidth) / 100;
}

$nwidth = intval($nwidth);
$nheight = intval($nheight);

$dimg = ImageCreateTrueColor($nwidth, $nheight);

ImageCopyResized($dimg, $simg, 0, 0, 0, 0, $newwidth, $newheight, $currwidth, $currheight); 
ImageJPEG($dimg,$dfile,70); 

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


Deze functie roep ik vervolgens aan met het volgende commando:
PHP:
1
2
3
<?
ImgResize("test.jpg","test_small.jpg",100,100);
?>



Ik heb zowel dit bestand als de testfoto (test.jpg) in een folder http://www.mijndomein.nl/test/ staan en ik wil ze ook uitvoeren naar deze folder.

Na het runnen van het script krijg ik steeds alleen een zwart vlak met de goede afmetingen, maar zonder verkleinde testfoto.

Mijn provider ondersteunt GDLibrary 2.0 met JPEG ondersteuning enabled.

  • SuperRembo
  • Registratie: Juni 2000
  • Laatst online: 20-08 14:36
Dat wordt debuggen ;)
Lukt het lezen van de testfoto met ImageCreateFromJPEG wel?

Verder is de header("...") overbodig, want de functie schrijft alleen naar een file.

| Toen / Nu


Acties:
  • 0 Henk 'm!

  • _Zedd_
  • Registratie: November 2001
  • Niet online
Verwijderd schreef op 18 september 2004 @ 08:42:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
<?

if ($currwidth > $currheight && $currwidth > $maxwidth) {
   $percent = ($maxwidth * 100) / $currwidth;
   $nwidth = $maxwidth;
   $nheight = ($percent * $currheight) / 100;
} elseif ($currwidth < $currheight && $currheight > $maxheight) {
   $percent = ($maxheight * 100) / $currheight;
   $nheight = $maxheight;
   $nwidth = ($percent * $currwidth) / 100;
}

?> 
Wat gebeurt er als $currwidth = $currheight en/of $currheight = $maxheight ? In dit geval zullen $nwidht en $nheight waarschijnlijk 0 worden door de intval(UNASSIGNED) operatie |:(
M.A.W kijk eens naar de If {} elseif {} else {} opzet.

GMT-8


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
_Zedd_ schreef op 19 september 2004 @ 11:36:
[...]
Wat gebeurt er als $currwidth = $currheight en/of $currheight = $maxheight ? In dit geval zullen $nwidht en $nheight waarschijnlijk 0 worden door de intval(UNASSIGNED) operatie |:(
M.A.W kijk eens naar de If {} elseif {} else {} opzet.
Daar heb je gelijk in. Het is echter niet de oorzaak van het probleem dat ik nu heb, want de foto waarmee ik het script test voldoet daar niet aan.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
SuperRembo schreef op 18 september 2004 @ 13:02:
...

Lukt het lezen van de testfoto met ImageCreateFromJPEG wel?

...
Hij leest de testfoto met ImageCreateFromJPEG wel.

Acties:
  • 0 Henk 'm!

  • Willem2
  • Registratie: Oktober 2000
  • Laatst online: 20-09 06:39

Willem2

Ω is futile

Je geeft $nwidht en $nheight een waarde maar in je je ImageCopyResized gebruik je de variabelen $newheight en $newwidth. Die hebben geen waarde dus kan hij niet veel voor je doen behalve een zwarte origineel aanmaken.

Dus....

en nee, ik houd niet van voetbal... :)


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Willem2 schreef op 19 september 2004 @ 12:50:
Je geeft $nwidht en $nheight een waarde maar in je je ImageCopyResized gebruik je de variabelen $newheight en $newwidth. Die hebben geen waarde dus kan hij niet veel voor je doen behalve een zwarte origineel aanmaken.

Dus....
OMFG. Thanks!!!
Pagina: 1