// 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){
// 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;}
// 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());
}
-// 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());
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;
}
-// 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());
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());
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.
// 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());
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:
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');
// 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());
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);
// 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];
// 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());
// 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');
// 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());