/** * Réduit les images à une taille maximale (chevauchant un rectangle) * * L'image possède un côté réduit dans les dimensions indiquées et * l'autre côté (hauteur ou largeur) de l'image peut être plus grand * que les dimensions du rectangle. * * Alors que image_reduire produit la plus petite image tenant dans un * rectangle, image_passe_partout produit la plus grande image qui * remplit ce rectangle. * * @example * ``` * [(#FICHIER * |image_passe_partout{70,70} * |image_recadre{70,70,center})] * ``` * @link http://www.spip.net/4562 * @see image_reduire() * * @param string $img * Chemin de l'image ou texte * @param int $taille_x * - Largeur maximale en pixels désirée * - -1 prend la taille de réduction des vignettes par défaut * - 0 la taille s'adapte à la largeur * @param int $taille_y * - Hauteur maximale en pixels désirée * - -1 pour prendre pareil que la largeur * - 0 la taille s'adapte à la hauteur * @param bool $force * @param bool $cherche_image * @param string $process * @return string * Code HTML de l'image ou du texte. **/ function image_passe_partout($img, $taille_x = -1, $taille_y = -1, $force = false, $cherche_image = false, $process = 'AUTO') { if (!$img) { return ''; } list($hauteur, $largeur) = taille_image($img); if ($taille_x == -1) { $taille_x = isset($GLOBALS['meta']['taille_preview']) ? $GLOBALS['meta']['taille_preview'] : 150; } if ($taille_y == -1) { $taille_y = $taille_x; } if ($taille_x == 0 and $taille_y > 0) { $taille_x = 1; } elseif ($taille_x > 0 and $taille_y == 0) { $taille_y = 1; } elseif ($taille_x == 0 and $taille_y == 0) { return ''; } list($destWidth, $destHeight, $ratio) = ratio_passe_partout($largeur, $hauteur, $taille_x, $taille_y); $fonction = array('image_passe_partout', func_get_args()); return process_image_reduire($fonction, $img, $destWidth, $destHeight, $force, $cherche_image, $process); }
function image_passe_partout($img,$taille_x = -1, $taille_y = -1,$force = false,$cherche_image=false,$process='AUTO'){ if (!$img) return ''; list ($hauteur,$largeur) = taille_image($img); if ($taille_x == -1) $taille_x = isset($GLOBALS['meta']['taille_preview'])?$GLOBALS['meta']['taille_preview']:150; if ($taille_y == -1) $taille_y = $taille_x; if ($taille_x == 0 AND $taille_y > 0) $taille_x = 1; # {0,300} -> c'est 300 qui compte elseif ($taille_x > 0 AND $taille_y == 0) $taille_y = 1; # {300,0} -> c'est 300 qui compte elseif ($taille_x == 0 AND $taille_y == 0) return ''; list($destWidth,$destHeight,$ratio) = ratio_passe_partout($largeur,$hauteur,$taille_x,$taille_y); $fonction = array('image_passe_partout', func_get_args()); return process_image_reduire($fonction,$img,$destWidth,$destHeight,$force,$cherche_image,$process); }