X-Git-Url: http://git.cyclocoop.org/?p=velocampus%2Fweb%2Fwww.git;a=blobdiff_plain;f=www%2Fextensions%2Ffiltres_images%2Ffiltres%2Fimages_typo.php;fp=www%2Fextensions%2Ffiltres_images%2Ffiltres%2Fimages_typo.php;h=5b8164f7c3ca2bc173a55e8db78c59629f34f583;hp=0000000000000000000000000000000000000000;hb=80b4d3e85f78d402ed2e73f8f5d1bf4c19962eed;hpb=aaf970bf4cdaf76689ecc10609048e18d073820c
diff --git a/www/extensions/filtres_images/filtres/images_typo.php b/www/extensions/filtres_images/filtres/images_typo.php
new file mode 100644
index 0000000..5b8164f
--- /dev/null
+++ b/www/extensions/filtres_images/filtres/images_typo.php
@@ -0,0 +1,639 @@
+$lettre - $code";
+
+ if (($code >= 54928 && $code <= 56767) || ($code >= 15707294 && $code <= 15711164)) {
+ $rtl = true;
+ }
+ else $rtl = false;
+
+ if ($lettre == "Ù " || $lettre == "Ù¡" || $lettre == "Ù¢" || $lettre == "Ù£" || $lettre == "Ù¤" || $lettre == "Ù¥"
+ || $lettre == "Ù¦" || $lettre == "Ù§" || $lettre == "Ù¨" || $lettre == "Ù©") $rtl = false;
+
+ if ($ponctuation[$lettre]) {
+ # le truc mega casse-gueule de l'inversion unicode:
+ # traiter le sens de placement en fonction de la lettre precedente
+ # (et non automatiquement le rtl_global)
+ $rtl = $rtl_prec;
+
+ if ($rtl) {
+ switch ($lettre) {
+ case "(": $lettre = ")"; break;
+ case ")": $lettre = "("; break;
+ case "«": $lettre = "»"; break;
+ case "»": $lettre = "«"; break;
+ case "â": $lettre = "â"; break;
+ case "â": $lettre = "â"; break;
+ }
+ }
+ }
+
+
+ if ($rtl) $res = $lettre.$res;
+ else $res = $res.$lettre;
+
+ $rtl_prec = $rtl;
+
+ }
+ return $res;
+}
+
+
+
+// http://doc.spip.org/@rtl_visuel
+function rtl_visuel($texte, $rtl_global) {
+ // hebreu + arabe: 54928 => 56767
+ // hebreu + presentation A: 15707294 => 15710140
+ // arabe presentation: 15708336 => 15711164
+
+ # echo hexdec("efb7bc");
+
+ // premiere passe pour determiner s'il y a du rtl
+ // de facon a placer ponctuation et mettre les mots dans l'ordre
+
+
+ $arabic_letters = array(
+ array("Ù", // lettre 0
+ "ï»±", // isolee 1
+ "ﻳ", // debut 2
+ "ï»´", // milieu 3
+ "ﻲ"),
+ array("ب", // lettre 0
+ "ïº", // isolee 1
+ "ïº", // debut 2
+ "ïº", // milieu 3
+ "ïº"),
+ array("ا", // lettre 0
+ "ا", // isolee 1
+ "ïº", // debut 2
+ "ïº", // milieu 3
+ "ïº"),
+ array("Ø¥", // lettre 0
+ "Ø¥", // isolee 1
+ "Ø¥", // debut 2
+ "ïº", // milieu 3
+ "ïº"),
+ array("Ù", // lettre 0
+ "ï»", // isolee 1
+ "ï»", // debut 2
+ "ï» ", // milieu 3
+ "ï»"),
+ array("Ø®", // lettre 0
+ "ﺥ", // isolee 1
+ "ﺧ", // debut 2
+ "ﺨ", // milieu 3
+ "ﺦ"),
+ array("ج", // lettre 0
+ "ïº", // isolee 1
+ "ïº", // debut 2
+ "ïº ", // milieu 3
+ "ïº"),
+ array("س", // lettre 0
+ "ﺱ", // isolee 1
+ "ﺳ", // debut 2
+ "ﺴ", // milieu 3
+ "ﺲ"),
+ array("Ù", // lettre 0
+ "ﻥ", // isolee 1
+ "ﻧ", // debut 2
+ "ﻨ", // milieu 3
+ "ﻦ"),
+ array("Ø´", // lettre 0
+ "ﺵ", // isolee 1
+ "ﺷ", // debut 2
+ "ﺸ", // milieu 3
+ "ﺶ"),
+ array("Ù", // lettre 0
+ "ï»", // isolee 1
+ "ï»", // debut 2
+ "ï»", // milieu 3
+ "ï»"),
+ array("Ø", // lettre 0
+ "ﺡ", // isolee 1
+ "ﺣ", // debut 2
+ "ﺤ", // milieu 3
+ "ﺢ"),
+ array("Ù
", // lettre 0
+ "ﻡ", // isolee 1
+ "ﻣ", // debut 2
+ "ﻤ", // milieu 3
+ "ﻢ"),
+ array("ر", // lettre 0
+ "ر", // isolee 1
+ "ïº", // debut 2
+ "ﺮ", // milieu 3
+ "ﺮ"),
+ array("ع", // lettre 0
+ "ع", // isolee 1
+ "ï»", // debut 2
+ "ï»", // milieu 3
+ "ï»"),
+ array("Ù", // lettre 0
+ "Ù", // isolee 1
+ "ï»", // debut 2
+ "ï»®", // milieu 3
+ "ï»®"),
+ array("Ø©", // lettre 0
+ "Ø©", // isolee 1
+ "Ø©", // debut 2
+ "ïº", // milieu 3
+ "ïº"),
+ array("Ù", // lettre 0
+ "ï»", // isolee 1
+ "ï»", // debut 2
+ "ï»", // milieu 3
+ "ï»"),
+ array("ï»»", // lettre 0
+ "ï»»", // isolee 1
+ "ï»»", // debut 2
+ "ﻼ", // milieu 3
+ "ﻼ"),
+ array("Ø", // lettre 0
+ "ﺡ", // isolee 1
+ "ﺣ", // debut 2
+ "ﺤ", // milieu 3
+ "ﺢ"),
+ array("ت", // lettre 0
+ "ïº", // isolee 1
+ "ïº", // debut 2
+ "ïº", // milieu 3
+ "ïº"),
+ array("ض", // lettre 0
+ "ﺽ", // isolee 1
+ "ﺿ", // debut 2
+ "ï»", // milieu 3
+ "ﺾ"),
+ array("Ù", // lettre 0
+ "Ù", // isolee 1
+ "ï»", // debut 2
+ "ï»", // milieu 3
+ "ï»"),
+ array("Ù", // lettre 0
+ "ﻩ", // isolee 1
+ "ﻫ", // debut 2
+ "ﻬ", // milieu 3
+ "ﻪ"),
+ array("Ù", // lettre 0
+ "Ù", // isolee 1
+ "ﻳ", // debut 2
+ "ï»´", // milieu 3
+ "ﻲ"),
+ array("ئ", // lettre 0
+ "ïº", // isolee 1
+ "ïº", // debut 2
+ "ïº", // milieu 3
+ "ïº"),
+ array("ص", // lettre 0
+ "ﺹ", // isolee 1
+ "ﺻ", // debut 2
+ "ﺼ", // milieu 3
+ "ﺺ"),
+ array("Ø«", // lettre 0
+ "ïº", // isolee 1
+ "ïº", // debut 2
+ "ïº", // milieu 3
+ "ïº"),
+ array("ï»·", // lettre 0
+ "ï»·", // isolee 1
+ "ï»·", // debut 2
+ "ﻸ", // milieu 3
+ "ﻸ"),
+ array("د", // lettre 0
+ "ﺩ", // isolee 1
+ "ﺩ", // debut 2
+ "ﺪ", // milieu 3
+ "ﺪ"),
+ array("Ø°", // lettre 0
+ "ﺫ", // isolee 1
+ "ﺫ", // debut 2
+ "ﺬ", // milieu 3
+ "ﺬ"),
+ array("Ø·", // lettre 0
+ "ï»", // isolee 1
+ "ï»", // debut 2
+ "ï»", // milieu 3
+ "ï»"),
+ array("Ø¢", // lettre 0
+ "Ø¢", // isolee 1
+ "Ø¢", // debut 2
+ "ïº", // milieu 3
+ "ïº"),
+ array("Ø£", // lettre 0
+ "Ø£", // isolee 1
+ "Ø£", // debut 2
+ "ïº", // milieu 3
+ "ïº"),
+ array("ؤ", // lettre 0
+ "ؤ", // isolee 1
+ "ؤ", // debut 2
+ "ïº", // milieu 3
+ "ïº"),
+ array("ز", // lettre 0
+ "ز", // isolee 1
+ "ز", // debut 2
+ "ﺰ", // milieu 3
+ "ﺰ"),
+ array("ظ", // lettre 0
+ "ظ", // isolee 1
+ "ï»", // debut 2
+ "ï»", // milieu 3
+ "ï»"),
+ array("غ", // lettre 0
+ "غ", // isolee 1
+ "ï»", // debut 2
+ "ï»", // milieu 3
+ "ï»"),
+ array("Ù", // lettre 0
+ "Ù", // isolee 1
+ "ﯨ", // debut 2
+ "ﯩ", // milieu 3
+ "ï»°"),
+ array("Ù¾", // lettre 0
+ "Ù¾", // isolee 1
+ "ï", // debut 2
+ "ï", // milieu 3
+ "ï"),
+ array("Ú", // lettre 0
+ "Ú", // isolee 1
+ "ï¼", // debut 2
+ "ï½", // milieu 3
+ "ï»")
+ );
+
+ if(init_mb_string() AND mb_regex_encoding() !== "UTF-8") echo "Attention: dans php.ini, il faut indiquer:
mbstring.internal_encoding = UTF-8";
+
+
+ $texte = explode(" ", $texte);
+
+ foreach ($texte as $mot) {
+ $res = "";
+
+ // Inserer des indicateurs de debut/fin
+ $mot = "^".$mot."^";
+
+ $mot = preg_replace(", ,u", " ", $mot);
+ $mot = preg_replace(",«,u", "«", $mot);
+ $mot = preg_replace(",»,u", "»", $mot);
+
+ // ponctuations
+ $ponctuations = array("/", "-", "«","»", "â", "â", ",", ".", " ", ":", ";", "(", ")", "Ø", "Ø", "?", "!"," ");
+ foreach($ponctuations as $ponct) {
+ $mot = str_replace("$ponct", "^$ponct^", $mot);
+ }
+
+ // lettres forcant coupure
+ $mot = preg_replace(",ا,u", "ا^", $mot);
+ $mot = preg_replace(",د,u", "د^", $mot);
+ $mot = preg_replace(",Ø£,u", "Ø£^", $mot);
+ $mot = preg_replace(",Ø¥,u", "Ø¥^", $mot);
+ $mot = preg_replace(",Ø£,u", "Ø£^", $mot);
+ $mot = preg_replace(",ر,u", "ر^", $mot);
+ $mot = preg_replace(",Ø°,u", "Ø°^", $mot);
+ $mot = preg_replace(",ز,u", "ز^", $mot);
+ $mot = preg_replace(",Ù,u", "Ù^", $mot);
+ $mot = preg_replace(",Ù,u", "Ù^", $mot);
+ $mot = preg_replace(",ؤ,u", "ؤ^", $mot);
+ $mot = preg_replace(",Ø©,u", "Ø©^", $mot);
+ // $mot = preg_replace(",Ù,u", "^Ù", $mot);
+ // $mot = preg_replace(",,", "^", $mot);
+
+
+ $mot = preg_replace(",Ù ,u", "^Ù ^", $mot);
+ $mot = preg_replace(",Ù¡,u", "^Ù¡^", $mot);
+ $mot = preg_replace(",Ù¢,u", "^Ù¢^", $mot);
+ $mot = preg_replace(",Ù£,u", "^Ù£^", $mot);
+ $mot = preg_replace(",Ù¤,u", "^Ù¤^", $mot);
+ $mot = preg_replace(",Ù¥,u", "^Ù¥^", $mot);
+ $mot = preg_replace(",Ù¦,u", "^Ù¦^", $mot);
+ $mot = preg_replace(",Ù§,u", "^Ù§^", $mot);
+ $mot = preg_replace(",Ù¨,u", "^Ù¨^", $mot);
+ $mot = preg_replace(",Ù©,u", "^Ù©^", $mot);
+
+
+ // Ligatures
+ $mot = preg_replace(",Ùا,u", "ï»»", $mot);
+ $mot = preg_replace(",ÙØ£,u", "ï»·", $mot);
+
+
+ foreach ($arabic_letters as $a_l) {
+ $mot = preg_replace(",([^\^])".$a_l[0]."([^\^]),u", "\\1".$a_l[3]."\\2", $mot);
+ $mot = preg_replace(",\^".$a_l[0]."([^\^]),u", "^".$a_l[2]."\\1", $mot);
+ $mot = preg_replace(",([^\^])".$a_l[0]."\^,u", "\\1".$a_l[4]."^", $mot);
+ // il semble qu'il ne soit pas necessaire de remplacer
+ // la lettre isolee
+ // $mot = preg_replace(",\^".$a_l[0]."\^,u", "^".$a_l[1]."^", $mot);
+ }
+
+ $mot = preg_replace(",\^,u", "", $mot);
+
+ $res = $mot;
+ $res = rtl_reverse($mot, $rtl_global);
+
+ /*
+ $rtl = false;
+ for ($i = 0; $i < spip_strlen($mot); $i++) {
+ $lettre = spip_substr($mot, $i, 1);
+ $code = rtl_mb_ord($lettre);
+ if (($code >= 54928 && $code <= 56767) || ($code >= 15708336 && $code <= 15711164)) $rtl = true;
+ }
+ */
+
+
+ if ($rtl_global) $retour = $res . " " . $retour;
+ else $retour = $retour. " ".$res;
+ }
+
+
+ return $retour;
+}
+
+
+// http://doc.spip.org/@printWordWrapped
+function printWordWrapped($image, $top, $left, $maxWidth, $font, $couleur, $text, $textSize, $align="left", $hauteur_ligne = 0) {
+ static $memps = array();
+
+ // imageftbbox exige un float, et settype aime le double pour php < 4.2.0
+ settype($textSize, 'double');
+
+ // calculer les couleurs ici, car fonctionnement different selon TTF ou PS
+ $black = imagecolorallocatealpha($image, hexdec("0x{".substr($couleur, 0,2)."}"), hexdec("0x{".substr($couleur, 2,2)."}"), hexdec("0x{".substr($couleur, 4,2)."}"), 0);
+ $grey2 = imagecolorallocatealpha($image, hexdec("0x{".substr($couleur, 0,2)."}"), hexdec("0x{".substr($couleur, 2,2)."}"), hexdec("0x{".substr($couleur, 4,2)."}"), 127);
+
+ // Gaffe, T1Lib ne fonctionne carrement pas bien des qu'on sort de ASCII
+ // C'est dommage, parce que la rasterisation des caracteres est autrement plus jolie qu'avec TTF.
+ // A garder sous le coude en attendant que ca ne soit plus une grosse bouse.
+ // Si police Postscript et que fonction existe...
+ if (
+ false AND
+ strtolower(substr($font,-4)) == ".pfb"
+ AND function_exists("imagepstext")) {
+ // Traitement specifique pour polices PostScript (experimental)
+ $textSizePs = round(1.32 * $textSize);
+ if (!$fontps = $memps["$font"]) {
+ $fontps = imagepsloadfont($font);
+ // Est-ce qu'il faut reencoder? Pas testable proprement, alors...
+ // imagepsencodefont($fontps,find_in_path('polices/standard.enc'));
+ $memps["$font"] = $fontps;
+ }
+ }
+
+ $rtl_global = false;
+ for ($i = 0; $i < spip_strlen($text); $i++) {
+ $lettre = spip_substr($text, $i, 1);
+ $code = rtl_mb_ord($lettre);
+ if (($code >= 54928 && $code <= 56767) || ($code >= 15707294 && $code <= 15711164)) {
+ $rtl_global = true;
+ }
+ }
+
+
+ // split the text into an array of single words
+ $words = explode(' ', $text);
+
+ // les espaces
+ foreach($words as $k=>$v)
+ $words[$k] = str_replace(array('~'), array(' '), $v);
+
+
+ if ($hauteur_ligne == 0) $lineHeight = floor($textSize * 1.3);
+ else $lineHeight = $hauteur_ligne;
+
+ $dimensions_espace = imageftbbox($textSize, 0, $font, ' ', array());
+ if ($dimensions_espace[2] < 0)
+ $dimensions_espace = imageftbbox($textSize, 0, $font, $line, array());
+ $largeur_espace = $dimensions_espace[2] - $dimensions_espace[0];
+ $retour["espace"] = $largeur_espace;
+
+
+ $line = '';
+ while (count($words) > 0) {
+
+ $mot = $words[0];
+
+ if ($rtl_global) $mot = rtl_visuel($mot,$rtl_global);
+
+ $dimensions = imageftbbox($textSize, 0, $font, $line.' '.$mot, array());
+ $lineWidth = $dimensions[2] - $dimensions[0]; // get the length of this line, if the word is to be included
+ if ($lineWidth > $maxWidth) { // if this makes the text wider that anticipated
+ $lines[] = $line; // add the line to the others
+ $line = ''; // empty it (the word will be added outside the loop)
+ }
+ $line .= ' '.$words[0]; // add the word to the current sentence
+ $words = array_slice($words, 1); // remove the word from the array
+ }
+ if ($line != '') { $lines[] = $line; } // add the last line to the others, if it isn't empty
+ $height = count($lines) * $lineHeight; // the height of all the lines total
+ // do the actual printing
+ $i = 0;
+
+ // Deux passes pour recuperer, d'abord, largeur_ligne
+ // necessaire pour alignement right et center
+ foreach ($lines as $line) {
+ if ($rtl_global) $line = rtl_visuel($line, $rtl_global);
+
+ $dimensions = imageftbbox($textSize, 0, $font, $line, array());
+ $largeur_ligne = $dimensions[2] - $dimensions[0];
+ if ($largeur_ligne > $largeur_max) $largeur_max = $largeur_ligne;
+ }
+
+ foreach ($lines as $i => $line) {
+ if ($rtl_global) $line = rtl_visuel($line, $rtl_global);
+
+ $dimensions = imageftbbox($textSize, 0, $font, $line, array());
+ $largeur_ligne = $dimensions[2] - $dimensions[0];
+ if ($align == "right") $left_pos = $largeur_max - $largeur_ligne;
+ else if ($align == "center") $left_pos = floor(($largeur_max - $largeur_ligne)/2);
+ else $left_pos = 0;
+
+
+ if ($fontps) {
+ $line = trim($line);
+ imagepstext ($image, "$line", $fontps, $textSizePs, $black, $grey2, $left + $left_pos, $top + $lineHeight * $i, 0, 0, 0, 16);
+ }
+ else imagefttext($image, $textSize, 0, $left + $left_pos, $top + $lineHeight * $i, $black, $font, trim($line), array());
+ }
+ $retour["height"] = $height;# + round(0.3 * $hauteur_ligne);
+ $retour["width"] = $largeur_max;
+
+ return $retour;
+}
+
+//array imagefttext ( resource image, float size, float angle, int x, int y, int col, string font_file, string text [, array extrainfo] )
+//array imagettftext ( resource image, float size, float angle, int x, int y, int color, string fontfile, string text )
+
+// http://doc.spip.org/@produire_image_typo
+function produire_image_typo() {
+ /*
+ arguments autorises:
+
+ $texte : le texte a transformer; attention: c'est toujours le premier argument, et c'est automatique dans les filtres
+ $couleur : la couleur du texte dans l'image - pas de dieze
+ $police: nom du fichier de la police (inclure terminaison)
+ $largeur: la largeur maximale de l'image ; attention, l'image retournee a une largeur inferieure, selon les limites reelles du texte
+ $hauteur_ligne: la hauteur de chaque ligne de texte si texte sur plusieurs lignes
+ (equivalent a "line-height")
+ $padding: forcer de l'espace autour du placement du texte; necessaire pour polices a la con qui "depassent" beaucoup de leur boite
+ $padding_vertical: forcer de l'espace autour du placement du texte en vertical; necessaire pour polices a la con qui "depassent" beaucoup de leur boite
+ $padding_horizontal: forcer de l'espace autour du placement du texte en horizontal; necessaire pour polices a la con qui "depassent" beaucoup de leur boite
+ $align: alignement left, right, center
+ */
+
+
+
+ // Recuperer les differents arguments
+ $numargs = func_num_args();
+ $arg_list = func_get_args();
+ $texte = $arg_list[0];
+ for ($i = 1; $i < $numargs; $i++) {
+ if (($p = strpos($arg_list[$i], "="))!==FALSE) {
+ $nom_variable = substr($arg_list[$i], 0, $p);
+ $val_variable = substr($arg_list[$i], $p+1);
+
+ $variable["$nom_variable"] = $val_variable;
+ }
+
+ }
+
+ // Construire requete et nom fichier
+ $text = str_replace(" ", "~", $texte);
+ $text = preg_replace(",(\r|\n)+,ms", " ", $text);
+ include_spip('inc/charsets');
+ $text = html2unicode(strip_tags($text));
+ if (strlen($text) == 0) return "";
+
+ $taille = $variable["taille"];
+ if ($taille < 1) $taille = 16;
+
+ $couleur = couleur_html_to_hex($variable["couleur"]);
+ if (strlen($couleur) < 6) $couleur = "000000";
+
+ $alt = $texte;
+
+ $align = $variable["align"];
+ if (!$variable["align"]) $align="left";
+
+ $police = $variable["police"];
+ if (strlen($police) < 2) $police = "dustismo.ttf";
+
+ $largeur = $variable["largeur"];
+ if ($largeur < 5) $largeur = 600;
+
+ if ($variable["hauteur_ligne"] > 0) $hauteur_ligne = $variable["hauteur_ligne"];
+ else $hauteur_ligne = 0;
+ if ($variable["padding"] > 0) $padding = $variable["padding"];
+ else $padding = 0;
+ if ($variable["padding_vertical"] > 0) $padding_vertical = $variable["padding_vertical"];
+ else $padding_vertical = 0;
+ if ($variable["padding_horizontal"] > 0) $padding_horizontal = $variable["padding_horizontal"];
+ else $padding_horizontal = 0;
+ if ($padding_horizontal == 0 AND $padding_vertical == 0 AND $padding > 0) {
+ $padding_horizontal = $padding;
+ $padding_vertical = $padding;
+ }
+
+
+ $string = "$text-$taille-$couleur-$align-$police-$largeur-$hauteur_ligne-$padding-$padding_vertical-$padding_horizontal";
+ $query = md5($string);
+ $dossier = sous_repertoire(_DIR_VAR, 'cache-texte');
+ $fichier = "$dossier$query.png";
+
+ $flag_gd_typo = function_exists("imageftbbox")
+ && function_exists('imageCreateTrueColor');
+
+
+ if (@file_exists($fichier))
+ $image = $fichier;
+ else if (!$flag_gd_typo)
+ return $texte;
+ else {
+ $font = find_in_path('polices/'.$police);
+ if (!$font) {
+ spip_log(_T('fichier_introuvable', array('fichier' => $police)));
+ $font = find_in_path('polices/'."dustismo.ttf");
+ }
+
+ $imgbidon = imageCreateTrueColor($largeur, 45);
+ $retour = printWordWrapped($imgbidon, $taille+5, 0, $largeur, $font, $couleur, $text, $taille, 'left', $hauteur_ligne);
+ $hauteur = $retour["height"];
+ $largeur_reelle = $retour["width"];
+ $espace = $retour["espace"];
+ imagedestroy($imgbidon);
+
+ $im = imageCreateTrueColor($largeur_reelle-$espace+(2*$padding_horizontal), $hauteur+5+(2*$padding_vertical));
+ imagealphablending ($im, FALSE );
+ imagesavealpha ( $im, TRUE );
+
+ // Creation de quelques couleurs
+
+ $grey2 = imagecolorallocatealpha($im, hexdec("0x{".substr($couleur, 0,2)."}"), hexdec("0x{".substr($couleur, 2,2)."}"), hexdec("0x{".substr($couleur, 4,2)."}"), 127);
+ ImageFilledRectangle ($im,0,0,$largeur_reelle+(2*$padding_horizontal),$hauteur+5+(2*$padding_vertical),$grey2);
+
+ // Le texte a dessiner
+ printWordWrapped($im, $taille+5+$padding_vertical, $padding_horizontal, $largeur, $font, $couleur, $text, $taille, $align, $hauteur_ligne);
+
+
+ // Utiliser imagepng() donnera un texte plus claire,
+ // compare a l'utilisation de la fonction imagejpeg()
+ _image_gd_output($im,array('fichier_dest'=>$fichier,'format_dest'=>'png'));
+ imagedestroy($im);
+
+ $image = $fichier;
+ }
+
+
+ $dimensions = getimagesize($image);
+ $largeur = $dimensions[0];
+ $hauteur = $dimensions[1];
+
+ return inserer_attribut("", 'alt', $alt);
+}
+
+
+?>