création de site internet

flus RSS du blogsur Facebooksur Twitter
créateur de mot de passe

Générateur de mot de passe

Créez un mot de passe sécurisé

20
09

ImageWorkShop - calques d'images avec PHP

dans PHP

ImageWorkShop est une classe PHP basée sur la librairie GD qui permet de gérer les images en PHP à l'aide de calques. Comme sur Photoshop, chaque calque constitue un élément de l'image, qu'il est alors possible de traiter indépendamment des autres (le déplacer, l'agrandir, le faire pivoter, ...). ImageWorkShop permet ainsi de créer facilement des miniatures (ou thumbnails), d'ajouter des watermark, de créer des images complexes à partir d'autres éléments graphiques, ... Son utilisation est réellement intuitive.

Création des calques

On commence par déclarer les calques (qui correspondent aux éléments qui vont constituer notre image finale). A noter que l'on peut très bien n'utiliser qu'un seul calque (et ainsi simplement retoucher l'image d'origine).

$calque1 = new ImageWorkShop(array(
          "imageFromPath" => "chemin/du/dossier/image/monimage1.jpg"
));

Applications des traitements sur les calques

Ensuite on applique des actions sur chaque calque. Comme par exemple, réaliser un thumbnail en redimensionnant le calque à 200px de large tout en conservant la proportion en hauteur :

$calque1->resizeInPixel(200, null, true);

ou bien encore le faire pivoter de 30° :

$calque1->rotate(30);

ou bien lui appliquer un filtre d'image GD :

$calque1->applyFilter(IMG_FILTER_NEGATE);

Superposer plusieurs calques

Enfin, on peut utiliser plusieurs calques et les superposer les uns sur les autres. On commence par les déclarer :

$calque1 = new ImageWorkShop(array(
          "imageFromPath" => "chemin/du/dossier/image/monimage1.jpg"
));

$calque2 = new ImageWorkShop(array(
          "imageFromPath" => "chemin/du/dossier/image/monimage2.jpg"
));

$calque3 = new ImageWorkShop(array(
          "imageFromPath" => "chemin/du/dossier/image/monimage3.jpg"
));

On applique ensuite, si besoin, les différentes actions de traitement pour chaque. Et enfin on positionne les calques les uns sur les autres :

$calque1->addLayerOnTop($calque2, 30, 20, "LB");
$calque1->addLayerOnTop($calque3, 40, 50, "RT");

Le calque $calque2 sera ainsi placé sur le calque $calque1, en bas à gauche, à 30px du bord gauche, 20px du bord bas. Le calque $calque3 sera placé sur le calque $calque1, en haut à droite, à 40px du bord droit, 50px du bord haut.

Générer l'image

Il suffit ensuite d'enregistrer l'image, en précisant son dossier de sauvegarde, et ses paramètres d'image (couleur de fond, qualité) :

$dossier = "chemin/du/dossier/de/sauvegarde";
$fichier = "nom-de-l-image-sauvegardee.jpg";
$creer_le_dossier_si_inexistant = true;
$couleur_de_fond = null; // valable uniquement pour les images en png
$qualite = 80; // valable uniquement pour les images jpg et png

$calque1->save($dossier, $fichier, $creer_le_dossier_si_inexistant, $couleur_de_fond, $qualite);

Plus d'informations : le site officiel

Partager :