/*
* +----------------------------------+
* Nom du Filtre : redimlogo
* +----------------------------------+
* Date : mercredi 16 avril 2003
* Auteur : Roustoubi (roustoubi@tiscali.fr)
* +-------------------------------------+
* Fonctions de ce filtre :
* Renvoie les paramètres width & height pour réduire
* proportionnellement (si nécessaire) un logo dans un
* rectangle de dimensions données
* Les dimensions sont passées en paramètre du filtre
* (à partir de SPIP v.1.5a2)
* Exemple d'application :
* [<img src="IMG/(#LOGO_RUBRIQUE|fichier)"][(#LOGO_RUBRIQUE|fichier|texte_script|redimlogo{200,0})>]
* +-------------------------------------+
*
* Pour toute suggestion, remarque, proposition d'ajout
* reportez-vous au forum de l'article :
* http://www.uzine.net/spip_contrib/article.php3?id_article=110
*/
function redimlogo ($image, $largeur_maxi=0, $hauteur_maxi=0) {
$image= "IMG/$image";
if ($largeur_maxi<=0 AND $hauteur_maxi<=0) {} // Pas de mise à l'échelle si négatif ou nul
elseif ($image != "IMG/") { // Que si l'image existe !
$dim_image = @GetImageSize($image);
$largeur_image = $dim_image[0];
$hauteur_image = $dim_image[1];
if ($largeur_image+$hauteur_image>0) {
// Calcul des facteurs de réduction
$reduction_largeur = $largeur_maxi/$largeur_image;
$reduction_hauteur = $hauteur_maxi/$hauteur_image;
// Choix du "bon" facteur de réduction
if ($reduction_largeur<=0) { $reduction = min(1,$reduction_hauteur); }
elseif ($reduction_hauteur<=0) { $reduction = min(1,$reduction_largeur); }
else {$reduction = min(1, $reduction_hauteur, $reduction_largeur); }
// Calcul des paramètres à renvoyer
$largeur = ceil($largeur_image*$reduction);
$hauteur = ceil($hauteur_image*$reduction);
$parametres = "height=\"".$hauteur."\" width=\"".$largeur."\"";
}
}
return $parametres;
}
// FIN du Filtre redimlogo
Ce script est dérivé d’autres que j’ai pu voir sur différents sites de contrib, mais j’ai oublié lesquels (leurs auteurs voudront bien m’excuser ou se signaler). Je suis excessivement débutant en php donc les pros voudront bien me pardonner le code qui n’est peut-être pas optimisé mais qui fonctionne.
Attention cependant : ce filtre n’est qu’un garde-fou contre les explosions de maquettes. Le redimensionnement de l’image par le navigateur est de qualité très fluctuante, sans compter que l’image trop grande sera nécessairement plus lente à afficher. Le filtre ne dispense donc pas de reprendre a posteriori les images trop grandes pour les redimensionner et les optimiser dans un logiciel graphique.
Aucune discussion
Ajouter un commentaire
Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :
Merci d’avance pour les personnes qui vous aideront !
Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.
Suivre les commentaires : |