tely33
Messages postés3Date d'inscriptionjeudi 10 novembre 2005StatutMembreDernière intervention 7 décembre 2006 23 janv. 2007 à 10:02
Salut,
J'ai un petit probleme concernant la partie switch($ext) puisque si mon image dépasse les 700ko environ, elle n'est pas crée. Sinon ça marche en dessous de cette taille (aucun msg d'erreur mais j'ai compris que le pb venait de là). Apperment c'est un probleme de mémoire mais existerait-il une manière de modifier le code pour que cela marche ?
webdeb
Messages postés488Date d'inscriptionsamedi 5 avril 2003StatutMembreDernière intervention31 mars 20094 18 oct. 2006 à 12:45
theroman
Messages postés10Date d'inscriptionmardi 22 février 2005StatutMembreDernière intervention27 juin 2006 28 juin 2006 à 12:31
moi je met 9/10
po mal du.
ca te gene pas si je pique une partie pour l'integrer a un scripte qui affiche toute les image d'un dossier tout en creant des miniature (maintenent) et qui donne la posibiliter de laisser des commentaire et de voir l'original biensure.
et si ca tente quelqu'un romain@theroman.be
je le poste po vu le nombre effrayent de source a ce sujet
PyRuSs
Messages postés16Date d'inscriptionlundi 2 juin 2003StatutMembreDernière intervention26 juin 2006 26 juin 2006 à 12:37
ok, ne cherchez plus! ^^
alors en fait, je conseil une petite modif lors de l'extraction de l'extention du fichier:
$extension_img = strtolower(substr(strchr($img,'.'),1));
En effet le probleme venai du fait que mes extentions a moi sont en MAJ... ^o)
PyRuSs
Messages postés16Date d'inscriptionlundi 2 juin 2003StatutMembreDernière intervention26 juin 2006 26 juin 2006 à 12:05
j'ai pas tout compris au code, mais il doit y avoir une erreur kkpart, ou alors le dossier destination n'est pas cree automatiquement?
En faisant ca:
make_miniature(const_root . $p . $read_file, 200, 150, const_root . $p . '/mini/', 'mini_', false)
J'ai bien une reponse "Vrai" mais je ne trouve mes images nul part...
des infos?
cs_darkduck
Messages postés138Date d'inscriptionvendredi 28 février 2003StatutMembreDernière intervention29 février 20081 16 mars 2006 à 21:25
J'ai modifié et optimisé le script en en faisant une fonction (c'est plus pratique je trouve pour l'utilisation). Cette fonction se contacte de, si tout se passe bien, sauvegarder l'image miniature dans un répertoire au choix, on peut choisir les dimensions, le préfixe et même si le fichier original doit être supprimé.
Pour ma part j'utilise cette fonction après un upload et c'est vraiment très pratique !
Voici la fonction :
function make_miniature($img, $max_width=400, $max_height=400, $repertoire_destination='./', $prefixe='mini-', $supprimer_original=false)
{
/*Fonction qui créer la mimiature d'une image.
Retourne true si la miniature a bien été créée, un message d'erreur sinon
Liste des paramètres :
- $img : Chemin relatif du répertoire dans lequel se trouve l'image originale
- $max_width : Largeur maximale pour la miniature
- $max_height : Hauteur maximale pour la miniature
- $repertoire_destination : Répertoire dans lequel doit être sauvegardée la miniature
- $prefixe : Préfixe donné à la miniature (Ex : "ma-photo.jpg" devient "mini-ma-photo.jpg"
- $supprimer_original : Si est égal à true on supprime l'image originale
if ($file !== false) //Le fichier existe
{
/*On recupere le nom de l'image*/
$nom = $prefixe.basename($img);
/*getimagesize() renvoie FALSE si le fichier n'est pas une image*/
if (false !list($largeur_orig,$hauteur_orig,$extension) getimagesize($img))
{
/*On récupère l'extension de l'image*/
$extension_img = substr(strchr($img,'.'),1);
/*On vérifie que le fichier soit bien au format jpg, gif ou png*/
if(ereg('(jpeg|jpg|gif|png)$',$extension_img))
{
switch ($extension)
{
case 1: // GIF
$type_img = imagecreatefromgif($img); break;
case 2: //JPEG
$type_img = imagecreatefromjpeg($img); break;
case 3: // PNG
$type_img = imagecreatefrompng($img); break;
}
/*On verifie la taille*/
if(($largeur_orig > $max_width) || ($hauteur_orig > $max_height))
{
// si l'image est trop large ou trop haute
if ($largeur_orig > $hauteur_orig)
{
// image plus large que haute
$hauteur = round(($hauteur_orig * $max_width) / $largeur_orig);
$largeur = $max_width;
}
else
{
// image plus haute que large
$hauteur = $max_height;
$largeur = round(($largeur_orig * $max_height) / $hauteur_orig);
}
}
else
{
$largeur = $largeur_orig;
$hauteur = $hauteur_orig;
}
/*On créer la miniature*/
$src = imagecreatetruecolor($largeur,$hauteur);
imagecopyresized($src,$type_img,0,0,0,0,$largeur,$hauteur,$largeur_orig,$hauteur_orig);
/*On sauvegarde la miniature*/
imagejpeg($src, $repertoire_destination.$nom);
/*On libere la memoire utilisée par cette image.*/
imagedestroy($src);
/*On supprime éventuellement l'image originale*/
if ($supprimer_original === true)
unlink($img);
}
else
{
$message = 'Erreur : L\'extension de l\'image est '.$extension_img.' ! Elle devrait être JPG, JPEG, GIF ou PNG';
}
}
else
{
$message = 'Erreur : Le fichier n\'est pas une image !';
}
}
else
{
$message = 'Erreur : Le fichier n\'existe pas !';
}
if ($reussi)
return true;
else
return $message;
}
Palleas_44
Messages postés130Date d'inscriptionlundi 12 décembre 2005StatutMembreDernière intervention19 avril 2009 2 mars 2006 à 19:40
Merci =)
makaveli244
Messages postés14Date d'inscriptionvendredi 7 novembre 2003StatutMembreDernière intervention23 avril 2007 2 mars 2006 à 14:50
bien fé
spycollege
Messages postés50Date d'inscriptionmercredi 15 juin 2005StatutMembreDernière intervention 8 mars 2007 1 mars 2006 à 21:27
excuse-moi, l'erreur vient de moi, j'avais fait une combine avec un autre code qui aplatissait l'image... l'embrouille, quoi. :S
10/10 ;)
Palleas_44
Messages postés130Date d'inscriptionlundi 12 décembre 2005StatutMembreDernière intervention19 avril 2009 27 févr. 2006 à 15:47
Qui conserve les proportions de l'image traitée ? mais elle le fait quand elle crée la miniature... Ou alors j'ai pas vraiment compris ce que tu voulais dire :$
spycollege
Messages postés50Date d'inscriptionmercredi 15 juin 2005StatutMembreDernière intervention 8 mars 2007 27 févr. 2006 à 12:58
de plus palleas, il aurait été intéressant de proposer une fonction qui conserve les proportions de l'image traitée... ca ne doit pas être très difficile à intégrer dans ta source, et ca mettrait vraiment un plus, car sur phpcs je n'ai encore vu aucune source qui le propose. Du coup, ta source (très bien par ailleurs, lol) vient s'ajouter à une liste assez longue... (d'ailleurs darkduck, tu n'as pas dû chercher bcp car il y en a une bonne dizaine de sources comme ca sur le site!)
@+^^
cs_GRenard
Messages postés1662Date d'inscriptionlundi 16 septembre 2002StatutMembreDernière intervention30 juillet 20081 25 févr. 2006 à 05:42
L'image d'erreur... pas besoin d'être 300x300
case 1: case 2:... tu pourrais mettre des constantes et mettre case TYPE_GIF...
Palleas_44
Messages postés130Date d'inscriptionlundi 12 décembre 2005StatutMembreDernière intervention19 avril 2009 25 févr. 2006 à 00:30
7/10 ? pour une premiere source je suis assez content de moi merci :)
cs_darkduck
Messages postés138Date d'inscriptionvendredi 28 février 2003StatutMembreDernière intervention29 février 20081 25 févr. 2006 à 00:23
Bonjour, bon script surtout que j'en recherchais un (redimentionneur d'images) depuis longtemps.
Toutefois, il serait préférable de créer une fonction au lieu de récupérer des paramètres grâce à la fonction $_GET.
Lorsque je lance le script, la miniature est sauvegardée, mais j'obtiens le message suivant :
"L'image « http://darkduck/redim_img.php?img=test.jpg&xm=300&ym=300 » ne peut être affichée, car elle contient des erreurs."
Ce sera donc 7/10
Palleas_44
Messages postés130Date d'inscriptionlundi 12 décembre 2005StatutMembreDernière intervention19 avril 2009 22 févr. 2006 à 15:40
Pourquoi faire l'image résultante d'erreur la grandeur de l'image voulue ?
Des define pour les case 1: case 2: seraient appréciés.
C'est à dire ? oO
cs_GRenard
Messages postés1662Date d'inscriptionlundi 16 septembre 2002StatutMembreDernière intervention30 juillet 20081 22 févr. 2006 à 14:17
Ligne Inutile
$bgcolor=imagecolorallocate($src,255,0,0);
Le 2e paramètre est le font... seulement de 1 à 5 inclusivement
imagestring($src,10,2,($ym-20)/2,"FORMAT",$tcolor);
Pourquoi faire l'image résultante d'erreur la grandeur de l'image voulue ?
Des define pour les case 1: case 2: seraient appréciés.
23 janv. 2007 à 10:02
J'ai un petit probleme concernant la partie switch($ext) puisque si mon image dépasse les 700ko environ, elle n'est pas crée. Sinon ça marche en dessous de cette taille (aucun msg d'erreur mais j'ai compris que le pb venait de là). Apperment c'est un probleme de mémoire mais existerait-il une manière de modifier le code pour que cela marche ?
18 oct. 2006 à 12:45
<?php
$chaine = 'monTruc.png';
echo strtolower(pathinfo($chaine, PATHINFO_EXTENSION));
?>
++
28 juin 2006 à 12:31
po mal du.
ca te gene pas si je pique une partie pour l'integrer a un scripte qui affiche toute les image d'un dossier tout en creant des miniature (maintenent) et qui donne la posibiliter de laisser des commentaire et de voir l'original biensure.
et si ca tente quelqu'un romain@theroman.be
je le poste po vu le nombre effrayent de source a ce sujet
26 juin 2006 à 12:37
alors en fait, je conseil une petite modif lors de l'extraction de l'extention du fichier:
$extension_img = strtolower(substr(strchr($img,'.'),1));
En effet le probleme venai du fait que mes extentions a moi sont en MAJ... ^o)
26 juin 2006 à 12:05
En faisant ca:
make_miniature(const_root . $p . $read_file, 200, 150, const_root . $p . '/mini/', 'mini_', false)
J'ai bien une reponse "Vrai" mais je ne trouve mes images nul part...
des infos?
16 mars 2006 à 21:25
Pour ma part j'utilise cette fonction après un upload et c'est vraiment très pratique !
Voici la fonction :
function make_miniature($img, $max_width=400, $max_height=400, $repertoire_destination='./', $prefixe='mini-', $supprimer_original=false)
{
/*Fonction qui créer la mimiature d'une image.
Retourne true si la miniature a bien été créée, un message d'erreur sinon
Liste des paramètres :
- $img : Chemin relatif du répertoire dans lequel se trouve l'image originale
- $max_width : Largeur maximale pour la miniature
- $max_height : Hauteur maximale pour la miniature
- $repertoire_destination : Répertoire dans lequel doit être sauvegardée la miniature
- $prefixe : Préfixe donné à la miniature (Ex : "ma-photo.jpg" devient "mini-ma-photo.jpg"
- $supprimer_original : Si est égal à true on supprime l'image originale
/*Initialisations*/
$reussi = false;
$message = '';
/*on ouvre le fichier*/
$file = fopen($img,'r');
if ($file !== false) //Le fichier existe
{
/*On recupere le nom de l'image*/
$nom = $prefixe.basename($img);
/*getimagesize() renvoie FALSE si le fichier n'est pas une image*/
if (false !list($largeur_orig,$hauteur_orig,$extension) getimagesize($img))
{
/*On récupère l'extension de l'image*/
$extension_img = substr(strchr($img,'.'),1);
/*On vérifie que le fichier soit bien au format jpg, gif ou png*/
if(ereg('(jpeg|jpg|gif|png)$',$extension_img))
{
switch ($extension)
{
case 1: // GIF
$type_img = imagecreatefromgif($img); break;
case 2: //JPEG
$type_img = imagecreatefromjpeg($img); break;
case 3: // PNG
$type_img = imagecreatefrompng($img); break;
}
/*On verifie la taille*/
if(($largeur_orig > $max_width) || ($hauteur_orig > $max_height))
{
// si l'image est trop large ou trop haute
if ($largeur_orig > $hauteur_orig)
{
// image plus large que haute
$hauteur = round(($hauteur_orig * $max_width) / $largeur_orig);
$largeur = $max_width;
}
else
{
// image plus haute que large
$hauteur = $max_height;
$largeur = round(($largeur_orig * $max_height) / $hauteur_orig);
}
}
else
{
$largeur = $largeur_orig;
$hauteur = $hauteur_orig;
}
/*On créer la miniature*/
$src = imagecreatetruecolor($largeur,$hauteur);
imagecopyresized($src,$type_img,0,0,0,0,$largeur,$hauteur,$largeur_orig,$hauteur_orig);
/*On sauvegarde la miniature*/
imagejpeg($src, $repertoire_destination.$nom);
/*On libere la memoire utilisée par cette image.*/
imagedestroy($src);
/*On supprime éventuellement l'image originale*/
if ($supprimer_original === true)
unlink($img);
}
else
{
$message = 'Erreur : L\'extension de l\'image est '.$extension_img.' ! Elle devrait être JPG, JPEG, GIF ou PNG';
}
}
else
{
$message = 'Erreur : Le fichier n\'est pas une image !';
}
}
else
{
$message = 'Erreur : Le fichier n\'existe pas !';
}
if ($reussi)
return true;
else
return $message;
}
2 mars 2006 à 19:40
2 mars 2006 à 14:50
1 mars 2006 à 21:27
10/10 ;)
27 févr. 2006 à 15:47
27 févr. 2006 à 12:58
@+^^
25 févr. 2006 à 05:42
case 1: case 2:... tu pourrais mettre des constantes et mettre case TYPE_GIF...
25 févr. 2006 à 00:30
25 févr. 2006 à 00:23
Toutefois, il serait préférable de créer une fonction au lieu de récupérer des paramètres grâce à la fonction $_GET.
Lorsque je lance le script, la miniature est sauvegardée, mais j'obtiens le message suivant :
"L'image « http://darkduck/redim_img.php?img=test.jpg&xm=300&ym=300 » ne peut être affichée, car elle contient des erreurs."
Ce sera donc 7/10
22 févr. 2006 à 15:40
Des define pour les case 1: case 2: seraient appréciés.
C'est à dire ? oO
22 févr. 2006 à 14:17
$bgcolor=imagecolorallocate($src,255,0,0);
Le 2e paramètre est le font... seulement de 1 à 5 inclusivement
imagestring($src,10,2,($ym-20)/2,"FORMAT",$tcolor);
Pourquoi faire l'image résultante d'erreur la grandeur de l'image voulue ?
Des define pour les case 1: case 2: seraient appréciés.