REDIMENSIONNEMENT D'UNE IMAGES, GIF, PNG, JPEG, JPG

cs_badoux Messages postés 137 Date d'inscription samedi 21 février 2004 Statut Membre Dernière intervention 16 décembre 2008 - 18 déc. 2006 à 09:35
cs_fruz Messages postés 1 Date d'inscription vendredi 27 avril 2007 Statut Membre Dernière intervention 13 septembre 2007 - 13 sept. 2007 à 18:21
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/40758-redimensionnement-d-une-images-gif-png-jpeg-jpg

cs_fruz Messages postés 1 Date d'inscription vendredi 27 avril 2007 Statut Membre Dernière intervention 13 septembre 2007
13 sept. 2007 à 18:21
Salut,

j'ai télèchargé le script pour voir, mais il y a une erreur à la ligne :

$size empty( $size ) || strpos( strtolower( $size ), 'x' ) FALSE ? 100x100 : $size;

@+
GNVA Dfx Messages postés 10 Date d'inscription jeudi 5 août 2004 Statut Membre Dernière intervention 20 décembre 2006
20 déc. 2006 à 19:29
Lol do_image est une function ! Juste ! Elle n'est pas dans une class, donc pas de public avant. Je l'avais dans une class pour ma part, erreur de correction...
GNVA Dfx Messages postés 10 Date d'inscription jeudi 5 août 2004 Statut Membre Dernière intervention 20 décembre 2006
20 déc. 2006 à 19:27
Public pk, parce que c'est bien clair. On sait de quoi on parle, on pourrait ne rien mettre oui, automatiquement cela est considéré en public je sais. C'est histoire de bien faire les choses.

// Citation
D'ailleur tu as une petit erreur dans cette même condition qui ne renvoie false que si $del == 1..

Merci pour l'interrogation du type qui ne renvoie FALSE que si $del est égal à 1, je n'avais pas remarqué.

// Citation
Tu fais deux fois la vérification de l'image... une fois par rapport à l'extension et une seconde fois pas rapport au type retourné par getimagesize()... c'est inutile le second test suffit... et plutot que de faire une condition à part tu pourrais faire... vu que tu utilise un switch...

Oui je fais 2 fois le contrôle du type de l'image, une fois par l'extension et une fois par le type même de l'image, je trouve nécessaire en cas de problème de savoir où chercher, c'est totalement volontaire !

// Citation
Sinon je trouve que l'utilisation de mime_content_type() n'est pas justifiée et limite la portabilité du script pour pas grand chose... autant faire...

Pour les headers c'est un petit détail je trouve mais je prend note.


// Citation
par contre il pourrait être bien de rajouter...
if(!empty($show) && headers_sent())
return false;

Par contre je ne comprends pas pourquoi contrôler que les headers sont envoyés vu que c'est un enregistrement ? Cela peut-être fait avant ou après les headers envoyés

// Citation
Utilise empty() plutot que $maVar == 1 ou $maVar != 1

Tu me dis utilise plustot cette fonction, j'ai eu pas mal d'erreur du à cette fonction que je n'apprècie pas beaucoup et j'ai remarqué que d'autres sources contrôle toujours avec une comparaison ($maVar == 1 | $maVar !=1 ) et la fonction empty() mais jamais seul. Enfin cela reste un avis personnel peut-etre.


// Citation
Pour finir ton unset($img, $tmp, $src); à la fin est totalement inutile vu que les variables sont locales php les supprime automatiquement à la fin de l'éxécution de la fonction... .. .

Ca c'est du folklore ! C'est vrai mais j'aime bien supprimer ce que je fait une fois terminé, c'est une assurance qui ne sert à rien sûrement.

Merci pour ta critique très objectives
kankrelune Messages postés 1293 Date d'inscription mardi 9 novembre 2004 Statut Membre Dernière intervention 21 mai 2015
18 déc. 2006 à 10:26
Zut erreurs de frappe dans mon commentaire précédant...

if(!empty($del)) et non if(!empty($del) et il faut virer le...

# @header("Content-type: ". mime_content_type( $src ) );

@ tchaOo°
kankrelune Messages postés 1293 Date d'inscription mardi 9 novembre 2004 Statut Membre Dernière intervention 21 mai 2015
18 déc. 2006 à 10:23
Uhm... pourquoi un public devant la déclaration de la fonction... c'est inutile vu que c'est une fonction... .. .

Sinon le in_array()/explode est un peu inutile autant faire...

if(!in_array($type, array(1,2,3)))

voir même...

if($type > 3)
{
if(!empty($del)
unlink($src);

return false;
}

D'ailleur tu as une petit erreur dans cette même condition qui ne renvoie false que si $del == 1...

Tu fais deux fois la vérification de l'image... une fois par rapport à l'extension et une seconde fois pas rapport au type retourné par getimagesize()... c'est inutile le second test suffit... et plutot que de faire une condition à part tu pourrais faire... vu que tu utilise un switch...

switch($type)
{
case 1: $tmp = imagecreatefromgif($src); break;
case 2: $tmp = imagecreatefromjpeg($src); break;
case 3: $tmp = imagecreatefrompng($src); break;

default:
if(!empty($del)
unlink($src);

return false;
}

Sinon je trouve que l'utilisation de mime_content_type() n'est pas justifiée et limite la portabilité du script pour pas grand chose... autant faire...

# @header("Content-type: ". mime_content_type( $src ) );

switch($type)
{
case 1:
header('Content-type: image/gif');
imagegif($img);
exit();
break;

case 2:
header('Content-type: image/jpeg');
imagejpeg($img, '', 100);
exit();
break;

case 3:
header('Content-type: image/png');
imagepng($img);
exit();
break;

}

par contre il pourrait être bien de rajouter...

if(!empty($show) && headers_sent())
return false;

Afin de vérifier si les header sont déja envoyé et si de ce fait il sera possible d'afficher l'image ou non... .. .

Utilise empty() plutot que $maVar == 1 ou $maVar != 1

Pour finir ton unset($img, $tmp, $src); à la fin est totalement inutile vu que les variables sont locales php les supprime automatiquement à la fin de l'éxécution de la fonction... .. .

Voila dans les grandes lignes... .. .

@ tchaOo°
cs_badoux Messages postés 137 Date d'inscription samedi 21 février 2004 Statut Membre Dernière intervention 16 décembre 2008
18 déc. 2006 à 09:35
Bonjour,

c'est du php5 ?
Rejoignez-nous