2010-05-17 7 views
0
 if ($img = @imagecreatefromjpeg('./images/upload/13/1.JPG')) { 

     imagejpeg($img, $path, 100); 
      imagedestroy($img); 

    } else { 

     die ("image was not created or saved"); 

    } 

Je reçois le message:Quelque chose ne va pas avec ce code GD php?

Attention: imagejpeg(): 8 n'est pas une ressource d'image valide dans C: \ xampp \ htdocs \ invivid \ bibliothèques \ photograph_classes.php en ligne 276

Attention: imagedestroy(): 8 n'est pas une ressource Image valide dans C: \ xampp \ htdocs \ invivid \ libraries \ photograph_classes.php sur la ligne 277

L'image est créée initialement, nous savons cela à partir de l'instruction if , mais pourquoi imagejpeg ou imagedestroy ne fonctionne pas correctement? Solution: Ok, je pense que cela a quelque chose à voir avec une variable $ path incorrecte, cela semble fonctionner correctement maintenant.

+0

Étrange, mais essayez d'enlever le @ en premier. –

+0

toujours la même erreur – ThinkingInBits

+2

Quelque chose ne va pas avec votre code php GD! –

Répondre

0

Je ne ai jamais utilisé comme ça (sans créer une nouvelle image, faire quelques manipulations, etc.), mais il semble que le manuel est un peu vague: imagecreatefromjpeg retourne un identifiant de ressource d'image et imagejpeg a besoin d'un ressource d'image, renvoyée par l'une des fonctions de création d'image. Il semble certainement la même chose, mais peut-être qu'ils ne le sont pas.

+0

imagecreatefromjpeg() ** lit ** le fichier jpeg en mémoire (en tant que ressource gdimage) et imagejpeg() ** écrit ** un jpeg binairy (à partir d'un gdimage) –

+0

C'est ce que je pensais, bien que le manuel ne soit pas si clair (ressource d'image vs identifiant de ressource d'image). Ne voyez rien d'autre qui ne va pas ... – jeroen

+0

en sélectionnant ceci comme réponse pour obtenir cet article à l'écart – ThinkingInBits

0

De l'documentation page sur imagecreatefromjpeg (bien que cela semble particulièrement peu plausible):

 
imagecreatefromJPEG is for .JPEG and .JPG ending 
& 
imagecreatefromjpeg is for .jpeg and .jpg ending. 

That function is case sensitive. 

Une autre chose vaut la peine d'essayer pourrait être mise en

ini_set('gd.jpeg_ignore_warning', 1); 

et voir si cela résout les problèmes présumés avec des images corrompues.

+0

même si la fonction est sensible à la casse (ce qui est en effet mentionné dans les ** commentaires **), Quelle est la différence entre un fichier .jpg et un fichier .JPG?!? –

+0

@Bob Fanger: oui, c'est pourquoi j'ai ajouté la partie "particulièrement invraisemblable" ;-) – ChristopheD

Questions connexes