Titre: [IMAGE] créer une miniature
Posté par: erwinol le le 15-07-2003 a 20:02:39
Salut à vous ! :)
J'ai un formulaire qui permet d'uploader jusqu'à 5 images en même temps et la fonction upload_images() qui permet de le faire ... jusque là tout va bien.
for($i=0 ; $images[$i]!="" ; $i++) { if(getImageSize($images[$i])) // si c'est une image { // destination : chemin final de l'image + nom du fichier avec extension $extension = get_extension($_FILES['images']['name'][$i]); $img_dest[$i] = $upload_images . $id_article . "_" . $i . "." . $extension;
// on a tous les éléments donc on déplace l'image move_uploaded_file($_FILES['images']['tmp_name'][$i] , $img_dest[$i]) or die("Erreur à l'upload de l'image ".$i); } }
Là où je coince c'est que je voudrais créer une miniature de la première des images uploadées, cette miniature me servira de lien vers l'ensemble des 5 images (ou 4 ou 3 ...).
J'ai cherché des tutos sur internet mais ils sont tjs très vagues. Je voudrais que le plus grand des 2 cotés (longueur et largeur) soit 80px et que l'autre s'ajuste automatiquement pour conserver les proportions de l'image. Quelle est la meilleure solution ? Que dois-je ajouter à ma fonction ci-dessus ? J'ai beau essayer je n'arrive à rien et je mélange tout :(
Merci d'avance pour votre aide.
Erwin |
Titre: Re:[IMAGE] créer une miniature
Posté par: POde.uk le le 15-07-2003 a 21:49:06
quelques lignes simples pour obtenir les largeurs et hauteurs inférieures ou égales à 80px $largeur_originale et $hauteur_originale contiennent les dimensions de l'image de base
Code:
$ratio_v = 80 / $largeur_originale; $ratio_h = 80 / $hauteur_originale; $ratio = $ratio_v < $ratio_h ? $ratio_v:$ratio_h;
$img_new_larg = round($largeur_originale * $ratio); $img_new_haut = round($hauteur_originale * $ratio);
|
|
ce code va d'abord déterminer qui de la largeur ou de la hauteur fera 80px. ensuite il va faire un simple rapport pour obtenir la dimension de l'autre dimension
une fois que tu as les dimensions, tu crées une image jpg ou gif avec ces dimensions, puis avec imagecopyresize() tu peux copier l'image originale dans la nouvelle vignette créée.
je te laisse cogiter un peu :) |
Titre: Re:[IMAGE] créer une miniature
Posté par: erwinol le le 16-07-2003 a 00:09:25
Merci bcp je vais essayer de trouver à partir de ces infos. Si j'ai un problème je fais signe ;) |
Titre: Re:[IMAGE] créer une miniature
Posté par: erwinol le le 16-07-2003 a 05:38:19
J'ai encore fait quelques recherches et j'en arrive à me demander si il est possible de faire des miniatures avec des images autres que JPG, JPEG PNG... par exemple qu'en est-il pour le format GIF ? Je pense que c'est depuis la version 1.6 de la librairie GD qu'ils ont retiré ça à cause d'une histoire de licence ou de brevet de l'algorithme de compression :(
Si j'ai des GIFS et que je voudrais en faire des miniatures est-ce possible ? Sinon quelles solutions s'offrent à moi ? Une convertion en PNG, JPG ou JPEG est-elle possible ? |
Titre: Re:[IMAGE] créer une miniature
Posté par: POde.uk le le 16-07-2003 a 11:36:32
| avec GD1.6 tu peux tjrs faire des GIF, je crée aussi des vignettes GIF à partir d'image JPEG sans rien convertir, tu créés la nouvelle image, tu copies en redimensionnant l'image JPEG d'oringine et tu sauvegardes le résultat avec imageGIF |
Titre: Re:[IMAGE] créer une miniature
Posté par: erwinol le le 16-07-2003 a 12:31:26
| Oui mais c avec GD 1.6 ça non ? Ca fait un bail que sur mon hébergeur y a plus cette version. Créer une miniature à partir d'une image GIF qu'un membre a uploadé c impossible avec GD>1.6 ... je me trompe ? |
Titre: Re:[IMAGE] créer une miniature
Posté par: POde.uk le le 16-07-2003 a 17:55:00
tas GD 2 chez ton hébergeur? en effet c plus possible avec GD > 1.6 |
Titre: Re:[IMAGE] créer une miniature
Posté par: erwinol le le 16-07-2003 a 18:20:23
Oui j'ai GD 2
Il paraittrait que ça retombe dans le domaine public ... donc dans une prochaine version de GD ce sera à nouveau possible. Et ça je suis persuadé que ça va aller vite vu qu'ils doivent juste reprendre qqch qui avait déjà été fait avant la 1.6. Mais le problème est "quand est-ce que mon hébergeur va mettre à jour sa version de GD?" |
Titre: Re:[IMAGE] créer une miniature
Posté par: POde.uk le le 16-07-2003 a 19:48:41
vi
mais tu veux vraiment des vignettes gif? |
Titre: Re:[IMAGE] créer une miniature
Posté par: erwinol le le 16-07-2003 a 20:29:08
Le problème c'est que ce seront les membres qui uploaderont les images, c'est pas moi qui vais les choisir ... et je vais quand même pas interdire le GIF qui est un format très prisé. Je dois donc prévoir le cas où ils uploaderaient des GIF, ce qui va arriver régulièrement j'en suis persuadé.
Donc si un membre uploade un GIF je dois pouvoir créer une miniature à partir de cette images ... peut importe que la miniature soit un GIF, un JPG, un PNG ou autre ... le problème réside dans le fait qu'on part d'un GIF à la base et la librairie GD ne permet ni d'utiliser le bon vieux ImageCreateFromGif() , ni de convertir le GIF en PNG par exemple pour pouvoir ensuite alors utiliser ImageCreateFromPng(). |
Titre: Re:[IMAGE] créer une miniature
Posté par: POde.uk le le 16-07-2003 a 20:40:37
je comprends
mais tente quand meme d'ouvrir un GIF puis de créer ensuite un jpeg, ca peut puet etre marcher? |
Titre: Re:[IMAGE] créer une miniature
Posté par: Shain le le 16-07-2003 a 21:33:54
ce code va d'abord déterminer qui de la largeur ou de la hauteur fera 80px. ensuite il va faire un simple rapport pour obtenir la dimension de l'autre dimension
une fois que tu as les dimensions, tu crées une image jpg ou gif avec ces dimensions, puis avec imagecopyresize() tu peux copier l'image originale dans la nouvelle vignette créée.
je te laisse cogiter un peu |
|
Si tu veux cogiter : sur le même principe, mes vignettes doivent faire 88*60 pixels ... Je planche dessus mais c'est chaud :P |
Titre: Re:[IMAGE] créer une miniature
Posté par: Shain le le 16-07-2003 a 22:37:36
| Personnellement j'ai trouvé, saurez-vous faire de même ? ;-) |
Titre: Re:[IMAGE] créer une miniature
Posté par: POde.uk le le 17-07-2003 a 00:38:11
Titre: Re:[IMAGE] créer une miniature
Posté par: erwinol le le 18-07-2003 a 18:54:56
En fait pour mon problème j'ai trouvé la solution ... qui n'en est pas vraiment une. Seule la première des 5 images uploadées doit avoir sa miniature, c'est en fait l'image qui servira de lien vers la news. Donc j'interdit tout simplement le GIF pour la première image et je l'autorise pour les suivantes ... c'est barbare mais c'est la meilleure solution. Et puis c'est tjs mieux que de l'interdire pour les 5 images comme j'avais pensé faire :) |
Titre: Re:[IMAGE] créer une miniature
Posté par: rapunzel le le 19-07-2003 a 13:31:35
Salut ! Bon moi aussi g des pb de miniature.... remaquez je débute alors...
En gros je veux faire un miniature de 62*62 à partir d'une src... La taille est fixe, pas de ratio ex... je sais ça déforme les proportionsmais c ce que je veux. Bon voilà mon code : $imgart est le nom/chemin de l'image d'origine : "coucou.jpeg"
Code:
$new_img = imagecreate(62, 62); imagecopyresized($new_img, $imgart, 0, 0, 0, 0, 62, 62, imagesx($imgart), imagesy($imgart)); imagejpeg($new_img); |
|
Je créé une nouvelle img en 62*62 puis je copy le contenu de l'img src dans cette image en la redimmensionnant.
Erreur dès le départ : Call to undefined function: imagecreate()
J'ai oublié un truc ? Qu'est ce qui merde ? Merci d'avance pour votre aide !
(et vive ce forum il m'aide vraiment bcp ! merci !) |
Titre: Re:[IMAGE] créer une miniature
Posté par: POde.uk le le 19-07-2003 a 15:00:13
lol chelou !
tas essayé sur dautres hébergements? tu fais ca sous easyphp, |
Titre: Re:[IMAGE] créer une miniature
Posté par: erwinol le le 19-07-2003 a 15:34:55
| Si tu bosses en local ou si t'as un hébergeur chelou la librairie GD n'est peut-être tout simplement pas installée. |
Titre: Re:[IMAGE] créer une miniature
Posté par: rapunzel le le 19-07-2003 a 18:03:46
jsuis en local pr l'instant... mais pas sous easy. Bon, je vais voir pr la GD... Mais ce qui est bizarre c que mon brither à fait un site sur le même pc, avec le même serveur et lib et tout et qu'il utilise ça et que ça marche alors jvois paS... Bon merci qd même.
|
Forum-webmaster | Actionné par YaBB SE
© 2001-2003, YaBB SE Dev Team. Tous droits réservés.
|