image.class.php

Télécharger le fichier image.class.php

Sur cette page, vous trouverez la classe PHP de gestion et modification d’image.
Cette classe sera soumise, au fur et à mesure du temps, à de multiples modifications dues notamment à son caractère amateur puisqu’il s’agit là d’une production personnelle d’un simple amateur.
Cependant afin d’avoir plus facile à la maintenir à jour et dans un soucis d’efficacité, cette classe est volontairement restreinte à des fonctions basiques.
Pour accéder aux autres fonctionnalités, il faut faudra charger la sous-classe correspondante.

Sans plus attendre voici le synopsis de ma class image.

Synopsis

__construct() Charge à l’initialisation une image à partir d’une URL ou crée une nouvelle au format désiré
afficher() Envoie l’image au navigateur avec les en-têtes adéquats selon le format choisi
enregistrer() Enregistre l’image au format et avec la qualité désirée
load() Charge une sous-classe de fonctionnalités
copier() Copie une ressource image ou un objet image à la place de l’image courante
vider() Vider la mémoire allouée à l’image courante

Constructeur de classe

Cette fonction est une des plus pratique dans la classe. Elle permet en effet d’instancier un nouvel objet image mais, ce faisant, ouvre une image à l’aide de la bonne fonction ou, si ce n’est pas une URL fournie mais des dimensions, une image vide (avec un fond de la couleur spécifiée).
Notez qu’à l’instanciation d’un objet image sont les variables img, width et height sont automatiquement assignées

Utilisations:

objet new image($url);

Charge une image située à l’adresse $url (local ou distante si l’option des « fopen wrappers » a été activée.

Exemple:

  1. span class= »st0″>"http://www.example.com/sample.gif"); //Instanciation de mon objet à partir de l’image indiquée
  2. ‘Largeur: ‘.$image->width.‘ et hauteur: ‘.$image->height; //Affiche "Largeur: 800 et hauteur: 600" à l’écran

objet new image(int $width, int $height [, array $bgcolor] );

Crée une nouvelle image de largeur $width et de hauteur $height. Si le paramètre $bgcolor est fourni, une couleur de fond est attribuée.

Exemple:

  1. span class= »co1″>//Créé une nouvelle image en 500*200 à dominance rouge

Affichage de notre image dans le navigateur

Quoi de plus ennuyant que de devoir faire appel à la bonne fonction pour juste afficher notre image. Sans oublier le header spécifique pour chaque format… En un appel à cette fonction, simplifiez vous la vie! Notez que le type est optionnel, il envoie l’image en PNG par défaut.

Utilisation:

void afficher([string $type]);

Envoie l’image courante au navigateur en spécifiant les en-têtes adéquats dans le type (optionnel) spécifié.

Exemple:

  1. span class= »st0″>’jpeg’//PNG par défaut

Enregistrer une image

Aviez-vous déjà remarqué que lorsque vous enregistrer une image, vous deviez spécifiez 2 fois le format désiré: une fois via la fonction utilisée, une autre dans l’extension du fichier à créer?
On corrige donc cela en enregistrant directement au bon format selon l’extension spécifiée dans le nom du fichier à créer.
Cette fonction harmonise également le principe de qualité pour le JPEG et le PNG. 100% correspond désormais pour chacun à une qualité optimale (par défaut).

Utilisation:

void enregistrer(string $url [, int $quality] );

Exemple:

  1. span class= »st0″>’../copie.jpg’); //Qualité optimale par défaut
  2. ‘../pouet/autre.png’, 80);

Charger une sous-classe

Afin de me pas surcharger ma classe de fonctions dont je n’ai pas tout le temps l’utilité, je crée un chargeur de fonctionnalités. Mes sous-classes de type image_*.class.php seront des extensions de ma classe principales. C’est-à-dire que lorsque j’aurai des fonctionnalités supplémentaires chargées, elles pourront, si nécessaire, accéder aux fonctions principales de ma classe image.

Utilisation:

void load(string $fonctionnalite);

Exemple:

  1. span class= »st0″>’distortions’); //charge le fichier image_distortions.class.php et la classe homonyme
  2. ‘effets’); //idem mais avec une autre sous-classe

Copier les données d’une image à notre instance

Par la suite, lorsqu’on aura besoin d’effectuer des changements dans une image, on conservera l’originale durant la modification puis on dupliquera l’une dans l’autre. Cela résout l’impossibilité de réaffecter $this directement comme on le fait avec des variables.

Utilisations:

void copier(object $image);

Exemple:

  1. span class= »co1″>//On importe les données de l’objet $image_2 dans l’objet $image_1.

void copier(resource $image, int $width, int $height);

Exemple:

  1. span class= »co1″>//On importe une image mais qui n’est pas nécessairement un objet de ma classe.

Vider proprement une image

Tout en dans le titre 😉

Utilisation:

void vider();

Exemple:

  1. $imagetest->vider();

Et voilà qui termine la classe image!

Si vous avez des commentaires et/ou suggestions pour améliorer et/ou corriger cette classe, n’hésitez pas à me le faire savoir!
En espérant que cela puisse vous aider, je vous invite à découvrir les sous-classes de fonctionnalités liées à cette classe et à vous amuser autant que moi dans la modification d’images en PHP!

2 commentaires pour “image.class.php”

  1. john dit :

    Bonjour,

    Votre fichier images.class.php m’interresse.
    Je n’ai pas trouvé de lien pour le récupérer.
    Serait-il possible de l’obtenir ?

    Cordialement,
    John,

  2. Sébastien dit :

    Bonjour,

    Celui-ci n’était en effet plus disponible depuis la transformation de cette page en une documentation plus complète et plus précise de la manière dont fonctionne et peut être utilisée cette classe.

    Cette erreur est désormais réparée. Vous trouverez en haut de chaque page traitant d’une classe ou d’un module de classe, un lien vers le fichier source correspondant.

    Si vous avez encore des questions, n’hésitez pas! 😉

Laisser un commentaire

Vous devez être connecté pour publier un commentaire.