Pas de compte !!!
Documentations > WIKI > WIKI pour WideImage_for_xoops > Utilisation de WideImage_for_xoops

Utilisation de WideImage_for_xoops

Publié par montuy337513 le 24-Feb-2013 11:50 (3257 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 :

if (is_file(XOOPS_URL.'/Frameworks/WideImage/WideImage.php')) {
    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.

if (!is_file(XOOPS_ROOT_PATH.'/Frameworks/WideImage/WideImage.php')) {
    $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_GEST_FRAMEWORKS', 'Gestion des Frameworks');
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 :

$image = WideImage::load('image.jpg'); //Chargement de l'image en mémoire
$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

resize( [mixed $width = null], [mixed $height = null], [string $fit = 'inside'], [string $scale = 'any'])



$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

$img = WideImage::load('image.jpg');
$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.

$img = WideImage::load('pic.jpg');
$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] Article suivant
Les commentaires appartiennent à leurs auteurs. Nous ne sommes pas responsables de leur contenu.
Auteur Commentaire en débat

Extraits de nos produits en téléchargement

Publicité