begin process at 2010 03 21 08:34:38
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Class et Objet ( POO )

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

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


 Information sur la source

Note :
9,29 / 10 - par 7 personnes
9,29 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Class et Objet ( POO ) Niveau :Initié Date de création :10/02/2005 Date de mise à jour :10/02/2005 14:36:09 Vu / téléchargé :5 064 / 904

Auteur : jalol

Ecrire un message privé
Site perso
Commentaire sur cette source (13)
Ajouter un commentaire et/ou une note

 Description

Voici une classe qui permet très simplement de faire des redimensions d'images, vignette... Très pratique pour des scripts de news avec images, des chargements d'avatars, etc... qui se font par formulaire HTML.

N'hésitez pas à me laisser des commentaires !
La classe se nomme image2Resize et nécessite la librairie GD pour fonctionner (normal me direz-vous...)

Source

  • #######################################
  • ## Comment se servir de image2Resize ##
  • #######################################
  • // Vous devez systématiquement inclure dans votre script le fichier de la classe par l'instruction include()
  • include ('image2Resize.class.php'); // Mettez le chemin menant vers le fichier de la classe
  • $votreObjet = new image2Resize ('./chemin_de_votre_fichier_source.jpg', 'Nom que vous souhaitez donner au fichier (sans l\'extension)');
  • // Vous pouvez ensuite appeler une des méthodes de la classe comme ceci :
  • $image_redimensionnee = $votreObjet -> redimensionner ('./dossier_de_destination/', $taille_demandee, $qualite_jpg, $agrandissement);
  • // Voir le fichier texte du zip pour plus de détails sur les méthodes de la classe
#######################################
## Comment se servir de image2Resize ##
#######################################

// Vous devez systématiquement inclure dans votre script le fichier de la classe par l'instruction include()

include ('image2Resize.class.php'); // Mettez le chemin menant vers le fichier de la classe

$votreObjet = new image2Resize ('./chemin_de_votre_fichier_source.jpg', 'Nom que vous souhaitez donner au fichier (sans l\'extension)');

// Vous pouvez ensuite appeler une des méthodes de la classe comme ceci :
$image_redimensionnee = $votreObjet -> redimensionner ('./dossier_de_destination/', $taille_demandee, $qualite_jpg, $agrandissement);

// Voir le fichier texte du zip pour plus de détails sur les méthodes de la classe

 Conclusion

Cette source nécessite un minimum de connaissance en Programmation Orientée Objet en PHP. Voir le code ci-dessus pour un exemple de création d'objet image2Resize

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

10 février 2005 13:39:10 :
10 février 2005 14:36:09 :

 Sources de la même categorie

Source avec Zip CLASSE TABLE HTML DYNAMIQUE par LDDL
Source avec Zip GÉNÉRATEUR DE COUCHE DAO POUR SITE WEB À PARTIR D'UNE BASE D... par alexfool
Source avec Zip [PHP5.2] CLASSE PDO par hornetbzz
Source avec Zip POO - LOGGING PACKAGE par Waredan
POO - OBJECT CLASS par Waredan

Commentaires et avis

Commentaire de jalol le 10/02/2005 13:41:33

N'hésitez pas à me laisser des commentaires sur cette source ! Reports de bugs ou idées d'amélioration également bienvenus :-)

Commentaire de GRenard le 10/02/2005 14:14:35

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)

Commentaire de jalol le 10/02/2005 14:39:25

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?

Commentaire de GRenard le 10/02/2005 15:15:09

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.

Commentaire de Anthomicro le 10/02/2005 17:54:20

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 +

Commentaire de jalol le 10/02/2005 18:05:07

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

Commentaire de Anthomicro le 10/02/2005 18:16:31

C'est plus gourmand par contre.

Commentaire de jalol le 10/02/2005 19:06:42

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...

Commentaire de hisy le 18/02/2006 15:07:17

Ben moi je dis COOOL ...
Une class bien pratique et que je trouve clairement développée et commentée.

Merci au développeur.

Commentaire de jalol le 18/02/2006 15:42:56

>> Merci au développeur
Merci à toi de l'utiliser ^_^

Commentaire de piep14 le 07/11/2007 18:46:57

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>

        <body>
                <p>&nbsp; </p>
                <form action="" method="post" enctype="multipart/form-data" name="form1">
                        <table width="100%" border="0">                      
                                <tr valign="bottom">
                                        <td height="49" colspan="2">
                                                <div align="center">
                                                        <input type="submit" name="Submit" value="  Valider  ">
                                                </div>
                                        </td>
                                </tr>
                        </table>
                </form>
        </body>
</html>

Merci

Commentaire de caviar le 30/11/2007 12:27:53

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 :)
@++

Commentaire de Axoloth le 21/04/2008 00:39:22

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 ?

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,577 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales