[Php] Miniatures d'images (à la imageshack)

Miniatures d'images (à la imageshack) [Php] - PHP - Programmation

Marsh Posté le 15-06-2006 à 17:12:12    

Donc j'étais un train de coder ce qui devait être normalement un travail de menuisier en faisant le boucher  :sarcastic:  ,
tout avait l'air de marcher, je prennais le chemin de l'image inscrit dans une base de donnée, je rétrécissais l'image et ajoutais une bande noir en y inscrivant la vraie taille quand je remarque que mon code ne sélectionne que la première entrée de ma base et pourtant il y a bien la traditionnelle boucle.
 
Mon code:
 

Code :
  1. <;?
  2. mysql_connect("localhost", "", "" );
  3. mysql_select_db("" );
  4. $reponse = mysql_query("SELECT * FROM blogimage" );
  5. while ($donnees = mysql_fetch_array($reponse))
  6. {
  7. $iimage = $donnees['image'];
  8. header ("Content-type: image/jpeg" );
  9. $image = imagecreatefromjpeg("$iimage" );
  10. $destination = imagecreatetruecolor(200, 150);
  11. $couleur = imagecolorallocate($image, 0, 0, 0);
  12. $largeur_source = imagesx($image);
  13. $hauteur_source = imagesy($image);
  14. $largeur_destination = imagesx($destination);
  15. $hauteur_destination = imagesy($destination);
  16. imagecopyresampled($destination, $image, 0, 0, 0, 0,
  17. $largeur_destination, $hauteur_destination, $largeur_source, $hauteur_source);
  18. $image2 = $destination;
  19. $couleur2 = imagecolorallocate($image2, 0, 0, 0);
  20. $largeur2_source = imagesx($image2);
  21. $hauteur2_source = imagesy($image2);
  22. $x1 = $hauteur2_source - 15;
  23. ImageFilledRectangle ($image2, 0, $x1, $largeur2_source, $hauteur2_source, $couleur2);
  24. $blanc = imagecolorallocate($image2, 255, 255, 255);
  25. imagestring($image2, 4, 5, $x1, "Taille réelle : $largeur_source,$hauteur_source", $blanc);
  26. imagejpeg($image2);
  27. }
  28. mysql_close();
  29. ?>


 
 
Pouvez vous m'aider ?
 
Merci d'avance.

Reply

Marsh Posté le 15-06-2006 à 17:12:12   

Reply

Marsh Posté le 15-06-2006 à 17:15:20    

manque un ; à ta requete

Reply

Marsh Posté le 15-06-2006 à 17:15:38    

je sais pa si c'est pas ton  
 
header ("Content-type: image/jpeg" );
 
qui viendrait poser pb lors du 2e passage.
 
tu as essayé aussi de faire un simple  
 
echo $donnees['image'];
 
pour voir si toutes tes images sont bien là ?
 
@++

Reply

Marsh Posté le 15-06-2006 à 17:16:50    

C'est une boucle, il n'y en a pas besoin

Reply

Marsh Posté le 15-06-2006 à 17:17:38    

en effet un echo donne toujorus beaucoup d'info ;)

Reply

Marsh Posté le 15-06-2006 à 17:21:00    

Ca marche avec l'echo seul, j'ai mis mon header en debut de code, ça revient au même :)

Reply

Marsh Posté le 15-06-2006 à 17:21:37    

et le ; tu l'a rajouté ?

Reply

Marsh Posté le 15-06-2006 à 17:24:11    

si c'est à cette ligne là que tu fais allusion :
while ($donnees = mysql_fetch_array($reponse))
 
Il n'y a pas besoin car c'est une boucle ;)

Reply

Marsh Posté le 15-06-2006 à 17:27:22    

heu me prends pas pour un boulet ... :lol:
 
C'est à ta requête SQL qu'il manque un ;

Reply

Marsh Posté le 15-06-2006 à 17:27:56    

moi c'est le header qui me gene pcq normalement ca veut dire que c'est tout ta page qui va etre considéré comme une image.
 
j'utilise des créations de miniatures à la volée aussi mais je ne balance pas de header image
 
d'ailleurs voici la fonction que j'ai adaptée et complétée pour mes besoin
http://www.asp-php.net/scripts/asp-php/vignette.php

Reply

Marsh Posté le 15-06-2006 à 17:27:56   

Reply

Marsh Posté le 15-06-2006 à 17:28:45    

sebou77 : si son echo lui renvoit toutes les info c'est que ca requete fonctionne je pense, non ?

Reply

Marsh Posté le 15-06-2006 à 17:30:37    

Ta miniature, tu l'enregistre sur le disque apres ou tu l'envoie au naviagateur ?
 
Si tu l'envoie au navigateur je vois pas comment tu y arrive car c'est qu'une image a la fois et si c'est sur le disque, header sert a rien car c'est pour l'envoie aux navigateurs internet.


---------------
my flick r - Just Tab it !
Reply

Marsh Posté le 15-06-2006 à 17:31:14    

Mmh il me semble qu'il s'y trouve non ?
 
Je te prends pas pour un boulet mais heu jtrouvais pas ou j'avais pas mis de ; et c'est le seul endroit près de la requette qui n'en n'a pas besoin ^^.

Reply

Marsh Posté le 15-06-2006 à 17:31:42    

c'est ce que je disais c'est le header qui fait planter.
merci zapan666

Reply

Marsh Posté le 15-06-2006 à 17:32:30    

Phpuck :
 
mais il te parle de ça
 
$reponse = mysql_query("SELECT * FROM blogimage;" );
 
mais ca vient pas de là ton erreur

Reply

Marsh Posté le 15-06-2006 à 17:33:51    

Bon en effet sa requete doit fonctionner, mais juste pour Phpuck c'est dans la requete sql qu'il manque un ; pas à la fin de ta ligne php mais DANS ton mysqlquery, toute requête sql se finie par un ; :)
Enfin bon je chipote ... :)

Reply

Marsh Posté le 15-06-2006 à 17:34:07    

grilled

Reply

Marsh Posté le 15-06-2006 à 17:34:22    

newneo2001> Ton pseudo correspond parfaitement à ce que j'obtiens quand je ne le mets pas, bienvenue dans la matrice Neo ^^
 
zapan666> L'image est sur mon serveur et dans une base de donnée je stock les chemins d'ou la requette sql ;)

Reply

Marsh Posté le 15-06-2006 à 19:01:52    

J'ai rajouté le ; rien en se passe, il fallait s'en douter. Par contre découverte interressante le problème viendrait du "imagejpeg($image2);"
 
ce n'est qu'une supposition mais je croix être sur la bonne voie :).

Reply

Marsh Posté le 16-06-2006 à 09:41:21    

Si ça peux t'inspirer, voici ma méthode de miniaturisation d'image (compatible JPG, PNG, GIF) :
 

Code :
  1. ////////////////////script petite image
  2.           // nom du dossier
  3.           $mini_destination="../img/produits/mini/";
  4.           //nom du chemin avec nom image
  5.           //$mini_fichier = $upload_destination.$upload_fichier;
  6.           $mini_fichier=$copie;
  7.           // hauteur maximale exprim?e en pixel
  8.           $hauteur_max = "200";
  9.           $largeur_max = "200";
  10.           //info sur image
  11.           //getimagesize() retourne un tableau de 4 ?l?ments.
  12.           //   L'index 0 contient la largeur.
  13.           //   L'index 1 contient la longueur.
  14.           //   L'index 2 contient le type de l'image : 1 = GIF, 2 = JPG, 3 = PNG.
  15.           //   L'index 3 contient la cha?ne ? placer dans les balises HTML : "height=xxx width=xxx".
  16.           $infos = @getimagesize($mini_fichier);
  17.           $largeur=$infos[0];
  18.           $hauteur=$infos[1];
  19.           $type=$infos[2];
  20.           // redimensionner dimension
  21.           if ( $hauteur > $hauteur_max || $largeur > $largeur_max )
  22.           {
  23.             if ( $hauteur > $largeur)
  24.             {
  25.               $mini_largeur = $largeur*$hauteur_max/$hauteur;
  26.               $mini_hauteur = $hauteur_max;
  27.             }
  28.             else
  29.             {
  30.               $mini_largeur = $largeur_max ;
  31.               $mini_hauteur = $hauteur*$largeur_max/$largeur;
  32.             }
  33.             //creation du nouvelle image
  34.             switch ($type)
  35.             {
  36.                  case 1 :
  37.                    // gif
  38.                    $original = imagecreatefromgif($mini_fichier);
  39.                    break;
  40.                  case 2 :
  41.                    // jpg
  42.                    $original = imagecreatefromjpeg($mini_fichier);
  43.                    break;
  44.                  case 3 :
  45.                    // png
  46.                    $original = imagecreatefrompng($mini_fichier);
  47.                    break;
  48.             }
  49.             $mini = imagecreatetruecolor($mini_largeur,$mini_hauteur);
  50.             imagecopyresampled($mini,$original,0,0,0,0,$mini_largeur,$mini_hauteur,$largeur,$hauteur);
  51.             imagejpeg($mini,$mini_fichier);
  52.           }

Reply

Marsh Posté le 16-06-2006 à 11:40:43    

Ton code n'est pas mal mais ce n'est pas l'effet recherché ;)

Reply

Marsh Posté le 16-06-2006 à 15:14:39    

Bon bon bon y a du nouveau, apparement les images sont bien toutes prise mais s'affichent l'une sur l'autres, j'ai besoin d'aide pour les afficher l'une à coté de l'autre.

Reply

Marsh Posté le 16-06-2006 à 16:00:55    

C'est bon, merci pour vos réponse je mis suis pris autrement, je crée la miniature pendant l'upload et l'affiche ensuite merci pour toute vos réponses ;)

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed