[php]zwarte image bij aanmaken thumbnail

Pagina: 1
Acties:
  • 37 views sinds 30-01-2008

  • bibawa
  • Registratie: Augustus 2005
  • Laatst online: 13-04-2008
Ik heb een stuk code gevonden dat adhv een foto een thumbnail zou moeten kunnen maken:

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
31
32
33
<?php 
    $sImage          = $_GET['bestand']; // Haal het bestand uit de header
    $iImageMaxWidth  = "120"; // De maximum hoogte van de afbeelding 
    $iImageMaxHeight = "90";  // De maximum breedte van de afbeelding
    $aImageData      = getimagesize($bestand); // Zoek de huidige breedte en hoogte van de afbeelding op
    $iImageWidth     = $aImageData[0]; // Haal de huidige breedte uit de array
    $iImageHeight    = $aImageData[1]; // Haal de huidige hoogte uit de array
    
    if ($iImageHeight > $iImageMaxWith || $iImageHeight > $iImageMaxHeight) // Kijk of de opgegeven afmetingen kleiner zijn dan de huidige
    { 
      if ($iImageWidth / $iImageHeight > $iImageMaxWidth / $iImageMaxHeight)  // Kijk of afbeelding te groot is
      { 
        $iImageNewWidth  = $iImageMaxWidth; // Verhoudingen voor breedte bepalen                                   
        $iImageNewHeight = round ($iImageHeight / ($iImageWidth / $iImageMaxWidth)); // Verhoudingen voor hoogte bepalen
      } 
      else 
      {   
        $iImageNewHeight = $iImageMaxHeight; // Verhoudingen voor hoogte bepalen 
        $iImageNewWidth  = round($iImageWidth / ($iImageHeight / $iImageMaxHeight)); // Verhoudingen bepalen voor breedte 
      }
    } 
    else // Als de afbeelding precies groot genoeg is
    { 
      $iImageNewHeight = $iImageMaxHeight;
      $iImageNewWidth  = $iImageMaxWidth; 
    } 
    $fImage = @imagecreatefromjpeg($bestand); // Vanuit vroegere bestand werken
    $fImageTemp = imagecreatetruecolor($iImageNewWidth, $iImageNewHeight); 
    imagecopyresized($fImageTemp, $fImage, 0, 0, 0, 0, $iImageNewWidth, $iImageNewHeight, $iImageWidth, $iImageHeight); // Verkleinen
    imagedestroy($fImage); 
    header("Content-type: image/jpeg"); // Header voor jpeg afbeeldingen doorsturen 
    imagejpeg($fImageTemp, "", 75); // Uiteindelijke verkleinde afbeelding terugsturen
?>


Wanneer ik echter dit bestand oproep via <img src='thumb.php?bestand=fotos/1.jpg' /> dan krijg ik een zwarte image te zien..

Weet iemand hoe dit komt of waaraan dit zou kunnen liggen?

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 23:10

TeeDee

CQB 241

Als je dit stukje code gevonden hebt, kan je toch prima de maker van die code even mailen?

Even wat constructiever:

- bestaat foto/1.jpg
- krijg je foutmeldingen
- haal die @ voor 'imagecreatefromjpeg' eens weg? Volgens mij was dat om foutmeldingen te onderdrukken
bibawa schreef op vrijdag 29 juni 2007 @ 12:39:
> Ik krijg geen foutmeldingen
Zie mijn edit en de opmerking van Erkens
> fotos/1.jpg bestaat wel degellijk
Zeg dat dan even in je startpost!
> de maker mailen is geen optie ...
Waarom niet?

[ Voor 88% gewijzigd door TeeDee op 29-06-2007 12:41 ]

Heart..pumps blood.Has nothing to do with emotion! Bored


  • bibawa
  • Registratie: Augustus 2005
  • Laatst online: 13-04-2008
> Ik krijg geen foutmeldingen
> fotos/1.jpg bestaat wel degellijk
> de maker mailen is geen optie ...

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

PHP:
1
$fImage = @imagecreatefromjpeg($bestand); // Vanuit vroegere bestand werken 

nooit fouten onderdrukken, zeker niet tijdens debuggen.

zet error_reporting op E_ALL en je ziet de fout direct, ik zag hem ook meteen met enkel doorlezen ;)

hij kan die file namelijk niet vinden doordat die variabele die je gebruikt nooit gezet wordt (tevens mis je hier enige vorm van userinput checking!)

[ Voor 23% gewijzigd door Erkens op 29-06-2007 12:40 ]


  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 23:10

TeeDee

CQB 241

Erkens schreef op vrijdag 29 juni 2007 @ 12:39:
PHP:
1
$fImage = @imagecreatefromjpeg($bestand); // Vanuit vroegere bestand werken 

hij kan die file namelijk niet vinden doordat die variabele die je gebruikt nooit gezet wordt (tevens mis je hier enige vorm van userinput checking!)
Nu zie ik 'm ook. Ik neem aan dat je het over $bestand hebt?

Heart..pumps blood.Has nothing to do with emotion! Bored


  • bibawa
  • Registratie: Augustus 2005
  • Laatst online: 13-04-2008
lol amaaai daar zo lang op zitten zoeken :)

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

bibawa schreef op vrijdag 29 juni 2007 @ 12:46:
lol amaaai daar zo lang op zitten zoeken :)
Daarom is het ook verstandig om je error reporting level zo in te stellen dat je ook alle notices ziet, want die worden niet voor niks gegeven. Je had dan direct gezien dat $bestand undefined was.
En ook het onderdrukken van errors is niet echt handig, had je dat niet gedaan dan had je de melding gekregen dat hij "iets" niet kon vinden, waarna je volgens mij toch echt snel tot de conclusie had moeten komen dat $bestand leeg was ;)


m.a.w. leer debuggen

[ Voor 27% gewijzigd door Erkens op 29-06-2007 12:50 ]


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 17:20

Janoz

Moderator Devschuur®

!litemod

Je bent al verschillende keren gewaarschuwd. De faq en het beleid hebben we hier niet voor niks, deze geldt dus wel degelijk ook gewoon voor jou. Hierin staat duidelijk dat het hier niet de bedoeling is om om support te vragen op scriptjes van anderen.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'

Pagina: 1

Dit topic is gesloten.