Navigation : Forums > Problèmes > Recalculer une image

Pages : 1 Poster un nouveau sujet Ajouter un message
Auteur Message
Sam

Messages : 1
Inscrit le : 26/06/2002
Posté le 08/07/2002 à 17:01:06 Message N°1 #
Salut a tous , je cherche une fonction qui permettrais de pouvoir modifier le poid et la taille d'une image. J'ai plein de photos de 1600 * 1200 qui pesent 400 Ko que j'aimerais par une petite boucle redimentionner qu elle fasse 400 * 300 et qu'elles pesent moins que 400 Ko. Si vous avez une fonction ou un script merci !
A bientot
Profil Citer
loranger

Messages : 392
Inscrit le : 04/04/2002
Posté le 08/07/2002 à 17:14:05 Message N°2 #
Tiens c'est marrant, mathieu m'en parlait ce matin de cette fonction là...
=)

Par contre, elle reste à être développée.
;-)
Je suis sur le coup, mais faut d'abord que je trouve du temps...
Profil Citer
maverick

maverick

Messages : 619
Inscrit le : 04/04/2002
Posté le 08/07/2002 à 21:36:14 Message N°3 #
du temps ? t'en veux ?
Pas de pbl !

http://www.google.fr/search?q=temps&ie=UTF-8&oe=UTF-8&hl=fr&meta=

(Google est ton ami :P )
____________________
image
Profil Citer
Boool

Messages : 8
Inscrit le : 02/07/2002
Posté le 09/07/2002 à 00:40:32 Message N°4 #

J'avais besoin de faire des tumbnails, alors je me suis fait une fonction.

ATTENTION, la fonction ne marche pas avec les BMP - WBMP, et il faut la GDLib spéciale GIF pour utiliser les GIF. Je suis sur qu'on peux faire cette fonction mieux, mais bon, elle marche, alors ;o)
Si tu trouves des bugs, merci de m'informer ;o)


<?
function change_image_size($rep_src, $rep_dest, $ext, $pre, $post, $nom_image, $largeur_voulu, $hauteur_voulu, $prop) {
/****
* Auteur : Thierry Corre
* Email : boool@mod-l.net
* Url : http://www.mod-l.net
* Description : Change la taille d'une image
****/

//$rep_src = Répertoire où se trouve l'image source (repertoire/, ou http://www.domain.com/repertoire/) (ne pas oublier le / finale))
//$rep_dest = Répertoire où se trouve l'image de destination (repertoire/, ou http://www.domain.com/repertoire/) (ne pas oublier le / finale))
//$ext = L'extention de l'image (bmp, jpeg, jpg, gif, png, wbmp)
//$pre = Ce que l'on veut mettre avant l'image, pour que le nom soit différent de l'image originale (image.jpg => petite_image.jpg)
//$post = Ce que l'on veut mettre après l'image, pour que le nom soit différent de l'image originale (image.jpg => image_petite.jpg)
//$nom_image = Le nom de l'image, sans extention (bob.jpg => bob, bob.img.jpg => bob.img)
//$largeur = C'est la largeur de l'image que l'on veut créer
//$hauteur = C'est la hauteur de l'image que l'on veut créer
//$prop = garder les proportions de l'image (true ou false)

//On se rend compte que bmp = wbmp, et que jpg = jpeg
If ( $ext == 'wbmp') $ext = 'bmp';
If ( $ext == 'jpeg') $ext = 'jpg';

//On donne l'adresse de l'image
$image_src = $rep_src . $nom_image . '.' . $ext;
$image_dest = $rep_dest . $pre . $nom_image . $post . '.' . $ext;

//On vérifie que le répertoire source existe
If ( @!is_dir($rep_src)) Return Print 'Le répertoire source <b>' . $rep_src . '</b> n\'existe pas<br>';

//On vérifie si les images de début et de fin exitent
If ( $image_src == $image_dest) Return Print 'L\'image source et l\'image cible sont les mêmes<br>';
If ( !file_exists($image_src)) Return Print 'L\'image ' . $image_src . ' n\'existe pas<br>';
If ( file_exists($image_dest)) Return Print 'L\'image ' . $image_dest . ' existe déjà<br>';

//On vérifie si le répertoire de destination existe, sinon on le crée
If (@!is_dir($rep_dest)) mkdir($rep_dest, '0777');

//On récupère la taille de l'image
$size = getimagesize($image_src);
$largeur_src = $size[0];
$hauteur_src = $size[1];

//On dit que si les proportions ne sont pas false, elle sont true
If ( $prop != false) $prop = true;

//On définie la largeur et la hauteur de l'image source si $prop == true
If ( $prop == true) {
$largeur_dest = ($largeur_src * $hauteur_voulu) / $hauteur_src;
$hauteur_dest = ($hauteur_src * $largeur_voulu) / $largeur_src;

If ($largeur_dest > $largeur_voulu) $largeur_dest = $largeur_voulu;
If ($hauteur_dest > $hauteur_voulu) $hauteur_dest = $hauteur_voulu;
}
Else {
$largeur_dest = $largeur_voulu;
$hauteur_dest = $hauteur_voulu;
}

//On récupère le contenu de l'image source
If ( $ext == 'bmp') $img_src = imagecreatefromwbmp($image_src);
If ( $ext == 'gif') $img_src = imagecreatefromgif ($image_src);
If ( $ext == 'jpg') $img_src = imagecreatefromjpeg($image_src);
If ( $ext == 'png') $img_src = imagecreatefrompng ($image_src);

//On crée l'image cible
$img_dest = imagecreate($largeur_dest, $hauteur_dest);

//On remplis l'image cible
imagecopyresized($img_dest, $img_src, 0, 0, 0, 0, $largeur_dest, $hauteur_dest, $largeur_src, $hauteur_src);

If ( $ext == 'bmp') imagewbmp($img_dest, $image_dest);
If ( $ext == 'gif') imagegif ($img_dest, $image_dest);
If ( $ext == 'jpg') imagejpeg($img_dest, $image_dest);
If ( $ext == 'png') imagepng ($img_dest, $image_dest);

//On libère la mémoire
imagedestroy($img_src);
imagedestroy($img_dest);

Return Print '<img src=' . $image_dest . '> : ' . $image_dest . '<br>';
}
?>
Profil Citer
Boool

Messages : 8
Inscrit le : 02/07/2002
Posté le 09/07/2002 à 00:46:25 Message N°5 #
Ce que j'avais fait aussi (mais que je retrouve plus), c'est faire une fonction qui lit un dossier, comme ca ils convertit toutes les images d'un dossier.

Si tu veux récupérer la taille d'une image dynamiquement, utilise la fonction getImageSize()

Voila, à bientôt ;o)
Profil Citer

Navigation : Forums > Problèmes > Recalculer une image

Pages : 1 Poster un nouveau sujet Ajouter un message


Se rendre directement sur le forum :