Utilisation de WideImage_for_xoops
Publié par montuy337513 le 24-Feb-2013 11:50 (3850 lectures)Pour commencer
Pour commencer, il vous faut appeler le Frameworks WideImage_for_xoops pour l'utilisation des fonctionnalités de traitements de l'image dans votre module.
Voici un exemple de code pour appeler le Frameworks WideImage_for_xoops :
include_once XOOPS_URL.'/Frameworks/WideImage/WideImage.php');
} else {
die('Frameworks WideImage absent');
}
Pour éviter un blocage lors d'une éventuelle installation par une personne qui n'a pas chargé les pré-requis, j'insère ce code dans le fichier index.php de ma section administration.
$fram_wideimage = _AM_ABSENT;
} else {
$fram_wideimage =_AM_PRESENT;
}
$clr_fram_wideimage = ($fram_wideimage == _AM_ABSENT) ? 'red': 'green';
$indexAdmin->addInfoBox(_AM_GEST_FRAMEWORKS);
$indexAdmin->addInfoBoxLine(_AM_GEST_FRAMEWORKS,_AM_CHG_WIDEIMAGE, $fram_wideimage, $clr_fram_wideimage);
et ceci dans le fichier admin.php de mon répertoire de langue (exemple : ./modules/my_module/language/french/admin.php)
define('_AM_ABSENT', 'Absent');
define('_AM_PRESENT', 'Présent');
define('_AM_CHG_WIDEIMAGE', 'Frameworks WideImage_for_xoops version 1.00 minimum : %s');
Un exemple basic
La plupart d'entre vous utiliseront le Frameworks WideImage_for_xoops pour la création de miniature lors d'un téléchargement d'images, voici donc comment effectuer le redimensionnement d'image 150x100 pixels avec WideImage_for_xoops :
$resized = $image->resize(150,100); // Redimensionnement de l'image originale en 150x100px
$resized->saveToFile('miniature.jpg'); // Enregistrement du résultat
Les fonctions de redimensionnement
Dans ce chapitre, nous allons plus en détails les paramètres de la fonction de redimmensionnement
$witdh et $height correspondent respectivement à la largeur et à la hauteur de l'image redimensionnée.
Ces variables accepte des entiers fixes positifs ou négatif (100 coorespond a la taille en pixels, et -20 spécifie de réduire la taille originale de 20 pixels) , mais nous pouvons aussi spécifié des pourcentages positifs ou négatifs (+50% correspond a une augmentation de 50% de la taille de l'image et -20% correspond a une réduction de 20% de l'image).
Au cas où des valeurs seraient absentes, le redimenssionement sera caluclé à partir du ratio de l'autre dimension.
$fit peut avoir comme valeur inside, outside ou fill.
- inside : s'arrange pour la taille de l'image soit au plus égale a width et height, le ratio est conservé
- outside : s'arrange pour que la taille de l'image soit au moins égale à width et height, le ratio est conservé
- fill : rempli l'image pour que la taille soit exactement égale à width et height, quitte a étirer l'image, le ratio de l'image n'est pas conservé
$scale peut prendre comme valeur down, up, any
- down : redimmensionne seulement si l'image est plus grande que les nouvelles dimensions
- up : redimenssionne seulement si l'image est plus petite que les nouvelles dimensions
- any : redimensionne dans tous les cas
La fusion (watermark)
Nous allons voir ici l'application d'un filigranne avec la méthode merge().
Voici un exemple qui colle l'image logo.jpg sur une image avec une opacité de 30 à la position 10,10
$watermark = WideImage::load('logo.jpg');
$new = $img->merge($watermark, 10, 10, 30);
Nous pouvons utiliser les coordonnées intéligentes pour placer facilement le filigranne par rapport au bord droit ou au bord inférieur.
$watermark = WideImage::load('logo.jpg');
// Logo.jpg taille est de 50 × 30 pixels
// Place le logo directement dans le centre (x), 10px du bas (y)
$new = $img->merge($watermark, '50% – 25', '100% – 40', 50);
// Ou utiliser des étiquettes d'alignement, c'est plus joli
$new = $img->merge($watermark, 'center', 'bottom – 10', 50);
Ici la pose du filigranne se fait a la volée, mais vous pouvez très bien au moment du chargement intégrer le filigranne, sauvegarder le résultat puis l'utiliser pour l'affichage la nouvelle image obtenue.
Naviguer à travers les articles | |
Use WideImage_for_xoops [english Version]
![]() |
Les commentaires appartiennent à leurs auteurs. Nous ne sommes pas responsables de leur contenu.
|