problème sript news

Répondre
onec
onec
Déconnecté
rien
slt,j'ai un probléme avec mon cript news lorsque j'insert une mew
avec image voici ce qui affiche a l'écran

Fatal error: Call to undefined function imagecreatefromjpeg()
in C:\wamp\www\GESTION_NEWS\news_ADMIN\fctredimimage.php on line 102

je pense que mon script de redimensionnement a un probléme, le voila donc mon script

fctredimimage.php

  1. <?php <?php  
  2. // ***************************************************************************************
  3. // fonction de REDIMENSIONNEMENT physique "PROPORTIONNEL" et Enregistrement
  4. // ***************************************************************************************
  5. // (xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx) http://mon site.com/
  6.  
  7. // retourne : true si le redimensionnement et l enregistrement ont bien eu lieu, sinon false
  8. // ---------------------------------------------------------------------------------------
  9. // La FONCTION : fctredimimage ($W_max, $H_max, $rep_Dst, $img_Dst, $rep_Src, $img_Src)
  10. // Les parametres :
  11. // - $W_max : LARGEUR maxi finale --> ou 0
  12. // - $H_max : HAUTEUR maxi finale --> ou 0
  13. // - $rep_Dst : repertoire de l image de Destination (deprotégé) --> ou '' (meme repertoire)
  14. // - $img_Dst : NOM de l image de Destination --> ou '' (meme nom que l image Source)
  15. // - $rep_Src : repertoire de l image Source (deprotégé)
  16. // - $img_Src : NOM de l image Source
  17. // ---------------------------------------------------------------------------------------
  18. // 3 options :
  19. // A- si $W_max != 0 et $H_max != 0 : a LARGEUR maxi ET HAUTEUR maxi fixes
  20. // B- si $H_max != 0 et $W_max == 0 : image finale a HAUTEUR maxi fixe (largeur auto)
  21. // C- si $W_max == 0 et $H_max != 0 : image finale a LARGEUR maxi fixe (hauteur auto)
  22. // Si l'image Source est plus petite que les dimensions indiquees : PAS de redimensionnement.
  23. // ---------------------------------------------------------------------------------------
  24. // $rep_Dst : il faut s'assurer que les droits en écriture ont été donnés au dossier (chmod)
  25. // - si $rep_Dst = '' : $rep_Dst = $rep_Src (meme repertoire que l image Source)
  26. // - si $img_Dst = '' : $img_Dst = $img_Src (meme nom que l image Source)
  27. // - si $rep_Dst='' ET $img_Dst='' : on ecrase (remplace) l image source !
  28. // ---------------------------------------------------------------------------------------
  29. // NB : $img_Dst et $img_Src doivent avoir la meme extension (meme type mime) !
  30. // Extensions acceptees (traitees ici) : .jpg , .jpeg , .png
  31. // Pour ajouter d autres extensions : voir la bibliotheque GD ou ImageMagick
  32. // (GD) NE fonctionne PAS avec les GIF ANIMES ou a fond transparent !
  33. // ---------------------------------------------------------------------------------------
  34. // UTILISATION (exemple) :
  35. // $redimOK = fctredimimage(120,80,'reppicto/','monpicto.jpg','repimage/','monimage.jpg');
  36. // if ($redimOK == true) { echo 'Redimensionnement OK !'; }
  37. // ***************************************************************************************
  38. function fctredimimage($W_max, $H_max, $rep_Dst, $img_Dst, $rep_Src, $img_Src) {  
  39. // ----------------------------------------------------
  40. $condition = 0;  
  41. // Si certains parametres ont pour valeur '' :
  42. if ($rep_Dst == '') { $rep_Dst = $rep_Src; } // (meme repertoire)
  43. if ($img_Dst == '') { $img_Dst = $img_Src; } // (meme nom)
  44. // ----------------------------------------------------
  45. // si le fichier existe dans le répertoire, on continue...
  46. if (file_exists($rep_Src.$img_Src) && ($W_max!=0 || $H_max!=0)) {  
  47. // --------------------------------------------------
  48. // extensions acceptees :
  49. $ExtfichierOK = '" jpg jpeg png"'; // (l espace avant jpg est important)
  50. // extension fichier Source
  51. $tabimage = explode('.',$img_Src);  
  52. $extension = $tabimage[sizeof($tabimage)-1]; // dernier element
  53. $extension = strtolower($extension); // on met en minuscule
  54. // --------------------------------------------------
  55. // extension OK ? on continue ...
  56. if (strpos($ExtfichierOK,$extension) != '') {  
  57. // -----------------------------------------------
  58. // recuperation des dimensions de l image Src
  59. $img_size = getimagesize($rep_Src.$img_Src);  
  60. $W_Src = $img_size[0]; // largeur
  61. $H_Src = $img_size[1]; // hauteur
  62. // -----------------------------------------------
  63. // condition de redimensionnement et dimensions de l image finale
  64. // -----------------------------------------------
  65. // A- LARGEUR ET HAUTEUR maxi fixes
  66. if ($W_max != 0 && $H_max != 0) {  
  67. $ratiox = $W_Src / $W_max; // ratio en largeur
  68. $ratioy = $H_Src / $H_max; // ratio en hauteur
  69. $ratio = max($ratiox,$ratioy); // le plus grand
  70. $W = $W_Src/$ratio;  
  71. $H = $H_Src/$ratio;  
  72. $condition = ($W_Src>$W) || ($W_Src>$H); // 1 si vrai (true)
  73. }  
  74. // -----------------------------------------------
  75. // B- HAUTEUR maxi fixe
  76. if ($W_max == 0 && $H_max != 0) {  
  77. $H = $H_max;  
  78. $W = $H * ($W_Src / $H_Src);  
  79. $condition = ($H_Src > $H_max); // 1 si vrai (true)
  80. }  
  81. // -----------------------------------------------
  82. // C- LARGEUR maxi fixe
  83. if ($W_max != 0 && $H_max == 0) {  
  84. $W = $W_max;  
  85. $H = $W * ($H_Src / $W_Src);  
  86. $condition = ($W_Src > $W_max); // 1 si vrai (true)
  87. }  
  88. // -----------------------------------------------
  89. // REDIMENSIONNEMENT si la condition est vraie
  90. // -----------------------------------------------
  91. // Si l'image Source est plus petite que les dimensions indiquees :
  92. // Par defaut : PAS de redimensionnement.
  93. // Mais on peut "forcer" le redimensionnement en ajoutant ici :
  94. // $condition = 1; (risque de perte de qualite)
  95. // -----------------------------------------------
  96. if ($condition == 1) {  
  97. // --------------------------------------------
  98. // creation de la ressource-image "Src" en fonction de l extension
  99. switch($extension) {  
  100. case 'jpg':  
  101. case 'jpeg':  
  102. $Ress_Src = imagecreatefromjpeg($rep_Src.$img_Src);  
  103. break;  
  104. case 'png':  
  105. $Ress_Src = imagecreatefrompng($rep_Src.$img_Src);  
  106. break;  
  107. }  
  108. // --------------------------------------------
  109. // creation d une ressource-image "Dst" aux dimensions finales
  110. // fond noir (par defaut)
  111. switch($extension) {  
  112. case 'jpg':  
  113. case 'jpeg':  
  114. $Ress_Dst = imagecreatetruecolor($W,$H);  
  115. break;  
  116. case 'png':  
  117. $Ress_Dst = imagecreatetruecolor($W,$H);  
  118. // fond transparent (pour les png avec transparence)
  119. imagesavealpha($Ress_Dst, true);  
  120. $trans_color = imagecolorallocatealpha($Ress_Dst, 0, 0, 0, 127);  
  121. imagefill($Ress_Dst, 0, 0, $trans_color);  
  122. break;  
  123. }  
  124. // --------------------------------------------
  125. // REDIMENSIONNEMENT (copie, redimensionne, re-echantillonne)
  126. imagecopyresampled($Ress_Dst, $Ress_Src, 0, 0, 0, 0, $W, $H, $W_Src, $H_Src);  
  127. // --------------------------------------------
  128. // ENREGISTREMENT dans le repertoire (avec la fonction appropriee)
  129. switch ($extension) {  
  130. case 'jpg':  
  131. case 'jpeg':  
  132. imagejpeg ($Ress_Dst, $rep_Dst.$img_Dst);  
  133. break;  
  134. case 'png':  
  135. imagepng ($Ress_Dst, $rep_Dst.$img_Dst);  
  136. break;  
  137. }  
  138. // --------------------------------------------
  139. // liberation des ressources-image
  140. imagedestroy ($Ress_Src);  
  141. imagedestroy ($Ress_Dst);  
  142. }  
  143. // -----------------------------------------------
  144. }  
  145. }  
  146. // ---------------------------------------------------------------------------------------
  147. // si le fichier a bien ete cree
  148. if ($condition == 1 && file_exists($rep_Dst.$img_Dst)) { return true; }  
  149. else { return false; }  
  150. }  
  151. // retourne : true si le redimensionnement et l enregistrement ont bien eu lieu, sinon false
  152. // ---------------------------------------------------------------------------------------
  153. ?>
  154. ?> 

je compte sur vous pour m'aider a resoudre mon problème
merci d'avance.
onec
onec
Déconnecté
rien
j'ai fais un erreur lors de l'insertion du code sur le forum
je problème se trouve donc au niveau de la ligne 14 maintenant
LA GLOBULE
LA GLOBULE
Déconnecté
111 111 111 x 111 111 111 = 12 345 678 987 654 321
L'erreur dit que la fonction imagecreatefromjpeg n'est pas connu de ton PHP.

As tu la librairie GD installée sur ton serveur ? Est elle activée sur ta SAPI ? Vérifie le avec un phpinfo.
onec
onec
Déconnecté
rien
le problème se situe sur mon serveur la librairie GD n'est installée. j'utille wamp comment je doit faire pour pouvoir l'installer ?
LA GLOBULE
LA GLOBULE
Déconnecté
111 111 111 x 111 111 111 = 12 345 678 987 654 321
Ouvre ton php.ini, recherche une ligne du genre extension=php_gd2.dll. Normallement, il doit y avoir un ; en debut de ligne : supprime le, sauve ton fichier et relance apache.

(j'ai trouvé cela sur le site de wamp, mais je ne garantis rien : ne connaissant pas wamp, je ne sais pas si la dll existe par défaut, mais ca ne te coute rien d'essayer)
Keika
Keika
Déconnecté
Le PHP --> C'est dur !
plus simple:
tu clique gauche sur l'icone de wamp dans la barre de tache, puis tu survoles PHP, puis PHP extensions, et dans cette liste tu clique gauche sur php_gd2.
Ca devrait redemarrer le serveur, si non, redemarre le manuellement.

Tu peux aussi activer php_curl tant que tu y es. Ca sera utile un jour...
onec
onec
Déconnecté
rien
j'ai fait comme vous avez dit mais voici ce qu'il affiche
Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 1536 bytes) in C:\wamp\www\PHP-GESTION-NEWS-v2\news_ADMIN\fctredimimage.php on line 102
moogli
moogli
Déconnecté
Il en faut peu pour être heureux !!!!!
salut,

fichier trop gros il te faut manipuler un fichier plus petit (ou alors configurer ton php.ini pour utiliser plus de mémoire.
Attention cette solution n'est la bonne que si tu administre le serveur qui he
Keika
Keika
Déconnecté
Le PHP --> C'est dur !
Attention cette solution n'est la bonne que si tu administre le serveur qui heberge le site distant.

(c'est ce que tu voulais dire moogli?)
moogli
moogli
Déconnecté
Il en faut peu pour être heureux !!!!!
Keika : oui oui, j'ai oublier un morceau, merci ;)
onec
onec
Déconnecté
rien
Merci pour vos réponses mais pour l'instant je ne comprend pas trop se que je doit faire pour ressoude mon problème.
j'utilise un serveur local (wamp) quesque je doit faire ?
Keika
Keika
Déconnecté
Le PHP --> C'est dur !
ma premiere reponse etait plutot simple pourtant. Avec un pas-a-pas...

Clique gauche sur la petite icone de wamp en bas a droite de ton ecran, puis survole PHP, puis survole PHP extensions puis survole php_gd2 et clique gauche dessus.

Je ne peux pas etre plus clair.

Bonne chance !
onec
onec
Déconnecté
rien
je l'ai fait et c'est a la suite qu'il a affiché se message ( Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 1536 bytes) in C:\wamp\www\PHP-GESTION-NEWS-v2\news_ADMIN\fctredimimage.php on line 102 ) et vous m'avez dit que c'est perce que l'image était trop lourde, je demandait donc s'il y avait un moyen d'y rémédier
Répondre
Accès rapide :

Remonter Remonter
L'éditeur javascript - CSS - Gentoo - Tutoriaux PHP - Tutoriels PHP - Bretagne - php - Moto - Kit graphique