CLASSE POUR GÉRER LES REDIMENSIONS D'IMAGES (AVEC GD)

cs_jalol Messages postés 12 Date d'inscription dimanche 31 octobre 2004 Statut Membre Dernière intervention 21 décembre 2005 - 10 févr. 2005 à 13:41
Axoloth Messages postés 1 Date d'inscription lundi 13 juin 2005 Statut Membre Dernière intervention 21 avril 2008 - 21 avril 2008 à 00:39
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/29407-classe-pour-gerer-les-redimensions-d-images-avec-gd

Axoloth Messages postés 1 Date d'inscription lundi 13 juin 2005 Statut Membre Dernière intervention 21 avril 2008
21 avril 2008 à 00:39
Bonjour,

Pareil qu'un post plus haut.... sur un redimenssionnement tout comme la génération d'un vignette, j'ai 2 jolie images toutes noires....

$destination = $_SERVER['DOCUMENT_ROOT']."/temp/temp.jpg";
$titre="test";
$cheminGrande="./";
$hauteurGrande=200;
$cheminVignette="./";
$hauteurPetite=72;
$imageFactory =& new image2Resize($destination, $titre);
$a=$imageFactory->redimensionner($cheminGrande, $hauteurGrande, 70, true );
$b=$imageFactory->vignette($cheminVignette, $hauteurPetite, true);

Une idée ?
cs_caviar Messages postés 329 Date d'inscription samedi 4 janvier 2003 Statut Membre Dernière intervention 29 mars 2015 2
30 nov. 2007 à 12:27
hey ! excellente ta source. Juste un petit goodies qui serai pas mal.
Au lieu de prendre le côté le plus large comme référence ce serait bien de pouvoir dire qu'on veut des images de 80px de large (ou de haut) qu'elles soient horizontales ou verticales (et que bien sur les proportions soient gardées).
Pour la génération de vignettes homogènes c'est plus sympas :)
@++
cs_piep14 Messages postés 345 Date d'inscription lundi 15 mars 2004 Statut Membre Dernière intervention 13 mai 2011
7 nov. 2007 à 18:46
Superbe source, j'ai essayé de faire avec un formulaire et ca me créé une photo toute noire. J'ai fait :

<?php
include ('image2Resize.class.php') ;

$file = $_FILES['file']['name'];
if($file) {
$monObjetImage = new image2Resize ($file, 'essai_redimension') ;
$image_redimensionnee = $monObjetImage -> redimensionner ('./', 600, 80, true) ;
}
?>
<html>
<head>
<title>Document sans titre</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>




<form action="" method="post" enctype="multipart/form-data" name="form1">


</form>

</html>

Merci
cs_jalol Messages postés 12 Date d'inscription dimanche 31 octobre 2004 Statut Membre Dernière intervention 21 décembre 2005
18 févr. 2006 à 15:42
>> Merci au développeur
Merci à toi de l'utiliser ^_^
hisy Messages postés 1 Date d'inscription jeudi 15 juillet 2004 Statut Membre Dernière intervention 18 février 2006
18 févr. 2006 à 15:07
Ben moi je dis COOOL ...
Une class bien pratique et que je trouve clairement développée et commentée.

Merci au développeur.
cs_jalol Messages postés 12 Date d'inscription dimanche 31 octobre 2004 Statut Membre Dernière intervention 21 décembre 2005
10 févr. 2005 à 19:06
Certes, mais en même temps ma classe ne prend pas en compte le traitement d'un formulaire, ce qui lui permet de rester appicable à d'autres situations...
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
10 févr. 2005 à 18:16
C'est plus gourmand par contre.
cs_jalol Messages postés 12 Date d'inscription dimanche 31 octobre 2004 Statut Membre Dernière intervention 21 décembre 2005
10 févr. 2005 à 18:05
Je vais plutôt le faire avec getimagesize() qui retourne aussi le type du fichier. Ca ne fait pas changer grand chose dans mon code en plus :p
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
10 févr. 2005 à 17:54
Salut,

en ce qui concerne les types d'images (uploadées) :

$clef=(array_keys($_FILES));

if($_FILES[$clef[0]]['type'] != 'image/pjpeg' AND $_FILES[$clef[0]]['type'] != 'image/jpeg')
{
//image pas jpeg.
}

c'est juste un exemple...

a +
cs_GRenard Messages postés 1662 Date d'inscription lundi 16 septembre 2002 Statut Membre Dernière intervention 30 juillet 2008 1
10 févr. 2005 à 15:15
Ah ouais pardon, jpensais stait bmp mais c'est wbmp... Bah si tu as lu l'article que j'ai écrit c'est bien :) Je n'ai pas regardé ton code au complet... mais il paraissait bien.

cs_jalol Messages postés 12 Date d'inscription dimanche 31 octobre 2004 Statut Membre Dernière intervention 21 décembre 2005
10 févr. 2005 à 14:39
Je viens de corriger les short_tag. J'ai également condensé mon switch grâce à ton astuce.

Pour le bmp, il n'est tout simplement pas pris en charge par GD, c'est pour cela que je ne l'ai pas inclus dans ma classe. Pour ce qui est de tester l'extension, je vais améliorer ça.

J'ai lu ton "article" sur les règles de programmation, et je n'ai trouvé que les short_tag qui n'allaient pas. Y-avait-il d'autres choses?
cs_GRenard Messages postés 1662 Date d'inscription lundi 16 septembre 2002 Statut Membre Dernière intervention 30 juillet 2008 1
10 févr. 2005 à 14:14
Pas mal, mais tu devrais utiliser <?php au lieu de <?.. et de suivre quelques règles de programmation dictées ici :
http://www.phpcs.com/code.aspx?id=24870

Ensuite, moi je ne suis pas d'accord de regarder l'extension pour ouvrir le fichier en conséquence... j'aurais plutot vérifier avec une fonction quelle est la nature du fichier... Mais bon, ca nécessite une librarie je crois... Donc tu pourrais mettre une option dans le constructeur par exemple s'il doit vérifier avec l'extension ou avec la librarie.

bmp ? Bah ? tu lui fais la gueule ?

Dernière chose, si tu fais ceci :
case 'jpg':
$source = imagecreatefromjpeg($image_source);
break;

case 'jpeg':
$source = imagecreatefromjpeg($image_source);
break;

tu peux condenser ton écriture en faisant
case 'jpg':
case 'jpeg':
$source....
break;

Voila

Dans l'ensemble c'est pas mal, mais essais de corriger ton script suivant le standard peut-etre :)

(Woua un commentaire positif vous allez dire :P)
cs_jalol Messages postés 12 Date d'inscription dimanche 31 octobre 2004 Statut Membre Dernière intervention 21 décembre 2005
10 févr. 2005 à 13:41
N'hésitez pas à me laisser des commentaires sur cette source ! Reports de bugs ou idées d'amélioration également bienvenus :-)
Rejoignez-nous