X-Git-Url: http://git.cyclocoop.org/?p=lhc%2Fweb%2Fclavette_www.git;a=blobdiff_plain;f=www%2Fplugins-dist%2Ffiltres_images%2Ffiltres%2Fimages_transforme.php;fp=www%2Fplugins-dist%2Ffiltres_images%2Ffiltres%2Fimages_transforme.php;h=d3233a7cec71638ad7f9b279a2aa86c935b25874;hp=0722117cfa394fccc668456015ca2afea81982af;hb=83e62ea97fafb78dde1372b78c1be4c71b5b1b58;hpb=be2c315934c5993ef2c5b9481e99e8de5d967da2 diff --git a/www/plugins-dist/filtres_images/filtres/images_transforme.php b/www/plugins-dist/filtres_images/filtres/images_transforme.php index 0722117..d3233a7 100644 --- a/www/plugins-dist/filtres_images/filtres/images_transforme.php +++ b/www/plugins-dist/filtres_images/filtres/images_transforme.php @@ -28,9 +28,9 @@ include_spip('inc/filtres_images_mini'); // pour le format gif, $qualite correspond au nombre de couleurs dans la palette (defaut 128) // pour le format png, $qualite correspond au nombre de couleur dans la palette ou si 0 a une image truecolor (defaut truecolor) // attention, seul 128 est supporte en l'etat (production d'images avec palette reduite pas satisfaisante) -// http://doc.spip.org/@image_aplatir +// http://code.spip.net/@image_aplatir // 3/ $transparence a "true" permet de conserver la transparence (utile pour conversion GIF) -// http://doc.spip.org/@image_aplatir +// http://code.spip.net/@image_aplatir function image_aplatir($im, $format='jpg', $coul='000000', $qualite=NULL, $transparence=false) { if ($qualite===NULL){ @@ -159,7 +159,7 @@ function image_aplatir($im, $format='jpg', $coul='000000', $qualite=NULL, $trans // Enregistrer une image dans un format donne // (conserve la transparence gif, png, ico) // utilise [->@image_aplatir] -// http://doc.spip.org/@image_format +// http://code.spip.net/@image_format function image_format($img, $format='png') { $qualite = null; if ($format=='png8') {$format='png';$qualite=128;} @@ -170,7 +170,7 @@ function image_format($img, $format='png') { // Transforme l'image en PNG transparent // alpha = 0: aucune transparence // alpha = 127: completement transparent -// http://doc.spip.org/@image_alpha +// http://code.spip.net/@image_alpha function image_alpha($im, $alpha = 63) { $fonction = array('image_alpha', func_get_args()); @@ -231,7 +231,24 @@ function image_alpha($im, $alpha = 63) } -// http://doc.spip.org/@image_recadre +/** + * + * http://code.spip.net/@image_recadre + * + * @param string $im + * @param string|int $width + * largeur du recadrage + * ou ratio sous la forme "16:9" + * @param string|int $height + * hauteur du recadrage + * ou "+" (agrandir) ou "-" (reduire) si un ratio est fourni pour width + * @param string $position + * center, left, right, top, bottom, ou combinaisons ("top left") + * @param string $background_color + * couleur de fond si on agrandit l'image + * @return string + * balise image recadree + */ function image_recadre($im,$width,$height,$position='center', $background_color='white') { $fonction = array('image_recadre', func_get_args()); @@ -248,6 +265,23 @@ function image_recadre($im,$width,$height,$position='center', $background_color= return _image_tag_changer_taille($im,$width,$height); } + // on recadre pour respecter un ratio ? + // width : "16:9" + // height : "+" pour agrandir l'image et "-" pour la croper + if (strpos($width,":")!==false){ + list($wr,$hr) = explode(":",$width); + $hm = $x_i / $wr * $hr; + $ym = $y_i / $hr * $wr; + if ($height=="+"?($y_i<$hm):($y_i>$hm)){ + $width = $x_i; + $height = $hm; + } + else { + $width = $ym; + $height = $y_i; + } + } + if ($width==0) $width=$x_i; if ($height==0) $height=$y_i; @@ -415,7 +449,7 @@ function image_recadre_mini($im) } -// http://doc.spip.org/@image_flip_vertical +// http://code.spip.net/@image_flip_vertical function image_flip_vertical($im) { $fonction = array('image_flip_vertical', func_get_args()); @@ -454,7 +488,7 @@ function image_flip_vertical($im) return _image_ecrire_tag($image,array('src'=>$dest)); } -// http://doc.spip.org/@image_flip_horizontal +// http://code.spip.net/@image_flip_horizontal function image_flip_horizontal($im) { $fonction = array('image_flip_horizontal', func_get_args()); @@ -492,7 +526,7 @@ function image_flip_horizontal($im) return _image_ecrire_tag($image,array('src'=>$dest)); } -// http://doc.spip.org/@image_masque +// http://code.spip.net/@image_masque function image_masque($im, $masque, $pos="") { // Passer, en plus de l'image d'origine, // une image de "masque": un fichier PNG24 transparent. @@ -904,7 +938,7 @@ function image_masque($im, $masque, $pos="") { // un noir & blanc "photo" n'est pas "neutre": les composantes de couleur sont // ponderees pour obtenir le niveau de gris; // on peut ici regler cette ponderation en "pour mille" -// http://doc.spip.org/@image_nb +// http://code.spip.net/@image_nb function image_nb($im, $val_r = 299, $val_g = 587, $val_b = 114) { $fonction = array('image_nb', func_get_args()); @@ -960,7 +994,7 @@ function image_nb($im, $val_r = 299, $val_g = 587, $val_b = 114) return _image_ecrire_tag($image,array('src'=>$dest)); } -// http://doc.spip.org/@image_flou +// http://code.spip.net/@image_flou function image_flou($im,$niveau=3) { // Il s'agit d'une modification du script blur qu'on trouve un peu partout: @@ -1088,7 +1122,7 @@ function image_flou($im,$niveau=3) return _image_ecrire_tag($image,array('src'=>$dest,'width'=>($x_i+$niveau),'height'=>($y_i+$niveau))); } -// http://doc.spip.org/@image_RotateBicubic +// http://code.spip.net/@image_RotateBicubic function image_RotateBicubic($src_img, $angle, $bicubic=0) { include_spip('filtres/images_lib'); @@ -1267,7 +1301,7 @@ function image_RotateBicubic($src_img, $angle, $bicubic=0) { // permet de faire tourner une image d'un angle quelconque // la fonction "crop" n'est pas implementee... -// http://doc.spip.org/@image_rotation +// http://code.spip.net/@image_rotation function image_rotation($im, $angle, $crop=false) { $fonction = array('image_rotation', func_get_args()); @@ -1282,7 +1316,7 @@ function image_rotation($im, $angle, $crop=false) if ($creer) { $effectuer_gd = true; - if(is_callable(array('Imagick','rotateImage'))){ + if(method_exists('Imagick','rotateImage')){ $imagick = new Imagick(); $imagick->readImage($im); $imagick->rotateImage(new ImagickPixel('none'), $angle); @@ -1338,7 +1372,7 @@ function image_rotation($im, $angle, $crop=false) // Permet d'appliquer un filtre php_imagick a une image // par exemple: [(#LOGO_ARTICLE|image_imagick{imagick_wave,20,60})] // liste des fonctions: http://www.linux-nantes.org/~fmonnier/doc/imagick/ -// http://doc.spip.org/@image_imagick +// http://code.spip.net/@image_imagick function image_imagick () { $tous = func_get_args(); $img = $tous[0]; @@ -1378,7 +1412,7 @@ function image_imagick () { // Permet de rendre une image // plus claire (gamma > 0) // ou plus foncee (gamma < 0) -// http://doc.spip.org/@image_gamma +// http://code.spip.net/@image_gamma function image_gamma($im, $gamma = 0){ include_spip('filtres/images_lib'); $fonction = array('image_gamma', func_get_args()); @@ -1430,7 +1464,7 @@ function image_gamma($im, $gamma = 0){ // On peut fixer les valeurs RGB // de la couleur "complementaire" pour forcer une dominante //function image_sepia($im, $dr = 137, $dv = 111, $db = 94) -// http://doc.spip.org/@image_sepia +// http://code.spip.net/@image_sepia function image_sepia($im, $rgb = "896f5e"){ include_spip('filtres/images_lib'); @@ -1496,7 +1530,7 @@ function image_sepia($im, $rgb = "896f5e"){ // Renforcer la nettete d'une image -// http://doc.spip.org/@image_renforcement +// http://code.spip.net/@image_renforcement function image_renforcement($im, $k=0.5) { $fonction = array('image_flou', func_get_args());