Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1740 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Problème redimensionnement image [RESOLU]

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème redimensionnement image [RESOLU]

n°1149957
AlphaZone
Posté le 14-07-2005 à 13:25:17  profilanswer
 

Bonjour à tous,
 
Je souhaite créer une miniature d'une image original. Le tout en jpg.
Le problème que je rencontre est que la création de la miniature se fait, mais impossible d'obtenir la taille souhaité. Cela me créé une sorte de copy au même dimension que la précédente.
 
Ca peut venir d'où ? Moi même j'ai dû mal à savoir d'où ca vient.
 
Voici le code source :

Code :
  1. $dir = "img/";
  2. $ratio = 100;
  3. $img = "20010111020512_9051.jpg";
  4. $quality = 80;
  5. $src = imagecreatefromjpeg($dir.$img);
  6. $size = getimagesize($dir.$img);
  7. $t = round(($ratio * $size[1]) / $size[0]);
  8. $newImg = imagecreate($ratio, $t);
  9. echo $ratio." - ".$t."<br><br>";
  10. if(imagecopyresized($newImg, $src, 0, 0, 0, 0, $ratio, $t, 200, 150))
  11.   echo "Ok<br><br>";
  12. else
  13.   echo "Non Ok<br><br>";
  14. $miniature = "mini_".$img;
  15. ImageJpeg($src, $dir.$miniature, $quality);
  16. echo "<img src=\"".$dir.$miniature."\" />";


 
Merci d'avance.


Message édité par AlphaZone le 14-07-2005 à 14:22:02
mood
Publicité
Posté le 14-07-2005 à 13:25:17  profilanswer
 

n°1149963
The-Shadow
Développeur
T'as été voir dans ton profil?
Posté le 14-07-2005 à 13:36:35  profilanswer
 

Dans ton imagecopyresized, tu fais la copie sur l'image de destination $newImg, mais dans ton ImageJpeg, tu écris $src.
 
Autre chose, utilise plutot la fonction 'imagecopyresampled' qui donne de bien meilleur résultat et utilise également les fonctions GD imagesx et imagesy pour avoir la taille d'une image GD, ça évite un accès disque pour avoir la taille.

n°1149964
afbilou
pouet your life
Posté le 14-07-2005 à 13:40:21  profilanswer
 

Tu ne definis pas de header :heink:
Tu crees une image et tu fais des echo dans le script :heink:
Qu'est ce que c'est que ca : echo "<img src=\"".$dir.$miniature."\" />"; :heink:
 
J'en reviens pas que ca puisse t'afficher quelque chose :heink:
 
Edit : haaaaaaaan ... tu ne crees pas une image a la volée ... tu crees un fichier miniature !
du coup g rien dit  :heink:


Message édité par afbilou le 14-07-2005 à 13:42:30
n°1149965
The-Shadow
Développeur
T'as été voir dans ton profil?
Posté le 14-07-2005 à 13:43:26  profilanswer
 

afbilou a écrit :

Tu ne definis pas de header :heink:
Tu crees une image et tu fais des echo dans le script :heink:
Qu'est ce que c'est que ca : echo "<img src=\"".$dir.$miniature."\" />"; :heink:
 
J'en reviens pas que ca puisse t'afficher quelque chose :heink:


 
De quoi tu parles, l'header est généré par GD.
 
Perso, je ne mets jamais d'header de toute façon. :D
 
Edit : Bon bah j'ai presque rien dit non plus alors. :D


Message édité par The-Shadow le 14-07-2005 à 13:44:19
n°1149980
AlphaZone
Posté le 14-07-2005 à 13:57:48  profilanswer
 

The-Shadow a écrit :

Dans ton imagecopyresized, tu fais la copie sur l'image de destination $newImg, mais dans ton ImageJpeg, tu écris $src.
 
Autre chose, utilise plutot la fonction 'imagecopyresampled' qui donne de bien meilleur résultat et utilise également les fonctions GD imagesx et imagesy pour avoir la taille d'une image GD, ça évite un accès disque pour avoir la taille.


Merci mec !
J'ai résolu mon problème grace à toi [:and garfunkel]

n°1149991
AlphaZone
Posté le 14-07-2005 à 14:07:33  profilanswer
 

Voici le code source qui fonctionne cette fois :)
 

Code :
  1. // --- PARAMETRES ---------------------------------------
  2. $dir = "img/";
  3. $ratio = 100;
  4. $img = "20010111020512_9051.jpg";
  5. $miniature = "mini_".$img;
  6. $quality = 80;
  7. // --- Création de l'image à partir d'un lien -----------
  8. $src = imagecreatefromjpeg($dir.$img);
  9. // --- Récupération dimension ---------------------------
  10. $size = array(imagesx($src), imagesy($src));
  11. $t = round(($ratio * $size[1]) / $size[0]);
  12. // --- Création de l'image en miniature -----------------
  13. $newImg = imagecreatetruecolor($ratio, $t);
  14. // --- Redimensionnement --------------------------------
  15. if(!imagecopyresampled($newImg, $src, 0, 0, 0, 0, $ratio, $t, $size[0], $size[1]))
  16.   echo "Erreur de redimensionnement<br />";
  17. // --- Enregistrement de la miniature -------------------
  18. ImageJpeg($newImg, $dir.$miniature, $quality);
  19. echo "<a href=\"".$dir.$img."\" target=\"_blank\"><img src=\"".$dir.$miniature."\" border=\"0\" /></a>";


Message édité par AlphaZone le 14-07-2005 à 14:07:45
n°1151208
cmoijulie
Posté le 16-07-2005 à 13:39:26  profilanswer
 

Bonjour,  
chez moi le script d'AlphaZone ne marche pas il me dit :  
Fatal error: Call to undefined function: imagecreatefromjpeg() pour la ligne 9
je comprends pas cette erreur ?

n°1151211
The-Shadow
Développeur
T'as été voir dans ton profil?
Posté le 16-07-2005 à 13:43:05  profilanswer
 

c'est une erreur typique de la non présence de GD sur ton ordi.
fait un phpinfo.

n°1151217
cmoijulie
Posté le 16-07-2005 à 13:57:01  profilanswer
 

c'est quoi un phpinfo?

n°1151221
The-Shadow
Développeur
T'as été voir dans ton profil?
Posté le 16-07-2005 à 14:00:38  profilanswer
 

Tu fais un tout petit script, dedans tu mets  

Code :
  1. <?php phpinfo(); ?>


 
Tu le lances, il va te donner les infos sur ta config PHP, reste plus qu'à voir ensuite si il y a des parties consacrés à GD dans les infos, si oui, c'est cool, si non, c'est qu'il ne doit pas être installé.

mood
Publicité
Posté le 16-07-2005 à 14:00:38  profilanswer
 

n°1151243
cmoijulie
Posté le 16-07-2005 à 14:44:07  profilanswer
 

et jdois regarder quoi maintenant ?

n°1151667
AlphaZone
Posté le 17-07-2005 à 08:12:18  profilanswer
 

cmoijulie a écrit :

et jdois regarder quoi maintenant ?


Normalement tu dois avoir ceci :
http://djay18100.free.fr/gd.gif
 
Si tu ne vois pas cette config, alors c'est que ta librairie GD n'est pas installer.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Problème redimensionnement image [RESOLU]

 

Sujets relatifs
[resolu] inclure php sans phpProbleme menu deroulant html/css/javascript
[Resolu * 2]solution de mapping java vers java[Javascript] Petit problème de fonction
[résolu] Comment mettre résolu ?[Résolu] Changer "display: none" dynamiquement
[RESOLU] [vba] récupération de données dans celluleProblème d'indexation avec SPIP
tableau dynamique [RESOLU]Problème lors de la compilation
Plus de sujets relatifs à : Problème redimensionnement image [RESOLU]


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR