| | nico du 12 | Posté le 28/12/2007 @ 14:45 | Petit astucien
45 Messages
| Bonjour, je suis en train de creer un site web ou je présente des photos personnelles, j'ai modifier un Diaporama avec flash qui charge mes photos dans un dossier séparé ( pour me permettre de suprimer ou rajouter des photos dans le Diaporama ) dans ce dossier mes photos sont de taille 900*600. j'ai ensuite trouver une application flash qui charge aléatoirement une image pour ma page d'acceuil depuis un dossier différent au format 300*200 ce sont les mémes photos mais je suis obliger de les héberger 2 fois a une taille différente dans deux dossier différent. (j'essaie d'etre clair !) J'aimerais trouver un script qui me Redimensionne mes photos présente dans un des dossiers (ou les photos sont les plus grandes ) pour les envoyer vers le dossier ou elles sont plus petites, ce qui me permetrait de n'heberger mes photos q'une seule fois. Si quelqu' un a une idée a me conseiller ou un liens a me donner, tout peut m 'etre utile en vous remerciant par avance, nico
| | |
| |
| Publicité |
|
| | Malcolm | Posté le 28/12/2007 à 16:06 | Astucien
7193 Messages
| Salut, via flash, je ne pense pas que ça puisse se faire, mais si ta page est en PHP, ça peut se faire grace à la librairie GD... Supposons que tes photos soient dans un sous dossier photos/ et que les miniatures soient dans photos/mini/ avec, pour chaque miniature, le même nom que la photo originale. (par exemple, grande photo : photos/DSCN001.jpg et petite photo photos/mini/DSCN001.jpg) - attention à la casse, photo.jpg n'est PAS photo.JPG !!! - Alors tu peux essayer ce bout de script : <?php $dossier = 'photos/'; $mini = 'mini/'; // taille des miniatures $width = 640; $height = 480; // liste des éléments à ne pas vérifier (= pas de miniature) $array_nocheck = array('.', '..', 'index.php', 'Thumbs.db'); // pour chaque photo, on vérifie si la minaiture existe, sinon on la crée : { while (false !== ($file = readdir($handle))) { { // c'est une image, on teste l'existence d'une miniature { // lecture des infos $source = imagecreatefromjpeg($file); $destination = imagecreatetruecolor($width, $height); $largeur_source = imagesx($source); $hauteur_source = imagesy($source); $largeur_destination = imagesx($destination); $hauteur_destination = imagesy($destination); // création de la miniature imagecopyresampled($destination, $source, 0, 0, 0, 0, $largeur_destination, $hauteur_destination, $largeur_source, $hauteur_source); // On enregistre la miniature sous le nom "$file" if (!imagejpeg($destination, $mini.$file)) { echo 'pas pu créer la miniature : '. $mini. $file. "<br />\n"; }; }; }; }; }; ?>
J'ai mis un message d'erreur pour voir ce qu'il tente de créer si ça ne marche pas, il te faudra sans doute retoucher aux chemins relatifs. | | | | | selen | Posté le 28/12/2007 à 17:53 | Maîtresse astucienne
10724 Messages
| bonjour nico bonjour malcolm peut-être un truc tout simple : dans le code html si on met <img src="fichier.jpg" /> sans préciser les dimensions, la photo s'affiche dans ses dimensions propres, si par contre on précise ne fût-ce qu'une des deux dimensions soit height soit width, la photo est automatiquement ajustée : ex <img src="fichier.jpg" height="400" /> donc si tu trouves dans ton javascript un endroit ou tu peux introduire cette donnée, tu peux utiliser le même stock de photos (de préférence les plus grandes pour ne pas perdre en netteté) | | | | | Malcolm | Posté le 28/12/2007 à 18:54 | Astucien
7193 Messages
| Oui, sele, mais il faut garder à l'idée que, même affichée en 10pixels sur 10pixels, une photo "normale" de 2 Mo pèsera 2 Mo ... Donc le poids de la pge peut considérablement augmenter, ce qui n'est pas le cas (ou pas de manière si fulgurante) avec des vignettes. | | | | | selen | Posté le 28/12/2007 à 20:57 | Maîtresse astucienne
10724 Messages
| ...oui, c'est vrai... | | | | | tirikou | Posté le 29/12/2007 à 21:55 | Petit astucien
855 Messages
| Salut, J'avais trouvé un script qui Redimensionne automatiquement la taille d'une photo. Si cela peut t'aider. function Redimage($img_src,$img_dest,$img_dest_width,$img_dest_height) { //Lecture des dimension de l'image $size = GetImageSize($img_src); $img_src_width = $size[0]; $img_src_height = $size[1]; //Test des dimensions tenant dans la zone $test_h = round(($img_dest_width / $img_src_width ) * $img_src_height); $test_w = round(($img_dest_height / $img_src_height) * $img_src_width); //si height final non précisé (0) if(!$img_dest_width) $img_dest_width = $test_w; //sinon si width final non précisé (0) elseif(!$img_dest_height) $img_dest_height = $test_h; // sinon teste quel Redimensionnement tient dans la zone elseif($test_h>$img_dest_height) $img_dest_width = $test_w; else $img_dest_height = $test_h; //Création de l'image vierge $dst_im = ImageCreateTrueColor($img_dest_width,$img_dest_height); //Copie dedans l'image initiale Redimensionnée $src_im = ImageCreateFromJpeg($img_src); ImageCopyResized($dst_im,$src_im,0,0,0,0,$img_dest_width,$img_dest_height,$img_src_width,$img_src_height); // Sauve la nouvelle image ImageJpeg($dst_im,$img_dest); //Destructon des tampons ImageDestroy($dst_im); ImageDestroy($src_im); } | | | |
| | Haut de la page |
| | Inscrivez-vous ! |
- Posez vos questions
- Résolvez vos problèmes
- Aidez les autres
- Participez et créez vos discussions
- Dialoguez en privé avec d'autres membres
- Suivez vos sujets préférés
- Affichez les signatures des membres
|
|