Changeset 33502 in spip-zone for _plugins_/image_ragged


Ignore:
Timestamp:
Dec 4, 2009, 2:14:27 PM (10 years ago)
Author:
arno@…
Message:

amerlioration

Location:
_plugins_/image_ragged
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/image_ragged/image_ragged_filtre.php

    r23052 r33502  
    3131  $creer = $image["creer"];
    3232
     33        $placer_fond = true;
     34
    3335  if (!$placer_fond) $ret = "<div style='position: relative; float: $align; width: 0px; height: 0px;'><img src='$im' class='format_png spip_ragged' alt='' style='position: absolute; $align: 0px;' /></div>";
    3436
    35   if ($creer) {
     37  if ($creer OR 1==1) {
    3638        include_spip('inc/logos'); // bicoz presence reduire_image
    3739        $im_n = extraire_attribut(image_reduire($im, 0, $precision), "src");
     
    4244        $y_i = $nouveau["hauteur"];
    4345        $rapport = ($w / $x_i);
     46       
    4447               
    4548        $im_n = $image["fonction_imagecreatefrom"]($im_n);
     49
     50
    4651
    4752        // une premiere passe
     
    6570        }
    6671               
    67         $larg[-1] = $w;
    68         $larg[$y_i] = $w;
     72        $larg[-1] = $x_i;
     73        $larg[$y_i] = $x_i;
     74       
    6975
     76        // On reprend chaque larg pour appliquer le margin verticalement       
     77        // La valeur "larg" de chaque ligne est inchangee,
     78        // mais on calcule une valeur a ajouter si les lignes avant et apres sont plus longues
     79        // le $add sera ensuite ajouté à la marge en "margin", sinon on a des caracteres masques sous IE.
     80        // La valeur de l'espacement vertical est au moins 25px, parce que les lignes de texte se calculent non sur la ligne de base, mais sur leur premier pixel superieur
     81        // il faut donc y aller large pour eviter les superpositions
     82        $vertical = ceil(max($margin, 25) / 5);
     83        for ($i = -1; $i <= $y_i; $i ++) {
     84               
     85                $add[$i] = 0;
     86               
     87                for ($j = max($i - $vertical, -1); $j <= min($i + $vertical, $y_i); $j++) {
     88                        $add[$i] = max($add[$i], ($larg[$i] - $larg[$j]));
     89                       
     90                       
     91                }
     92        }
     93                       
    7094        if ($align == "left") $mrg = "margin-right";
    7195        else $mrg = "margin-left";
     96
     97        // On ajoute un div pour forcer le margin vertical au dessus - ca evite notamment que la premiere ligne de texte passe sous l'image
     98    $forme .= "\n<div style='float: $align; clear: $align; $mrg: ".($add[0]*$rapport + $margin)."px; width:".($larg[0] * $rapport)."px ; height: ".max($margin,25)."px; overflow: hidden;'></div>";
    7299
    73100        // une deuxieme passe
     
    79106          $hauteur = round(($haut_rest) / $reste);
    80107          $haut_tot = $haut_tot + $hauteur;
    81           $resultat = min($larg[$j-1],$larg[$j],$larg[$j+1]);
     108          $resultat = $larg[$j];
    82109
    83110          // Placer l'image en fond de differentes tranches
     
    86113          else $backg = "";
    87114
    88           $forme .= "\n<div style='float: $align; clear: $align; $mrg: ".$margin."px; width: ".round(($w - ($resultat)*$rapport))."px ; height: ".round($hauteur)."px; overflow: hidden;$backg'></div>";
     115          $forme .= "\n<div style='float: $align; clear: $align; $mrg: ".($add[$j] * $rapport + $margin)."px; width: ".round(($w - ($resultat)*$rapport))."px ; height: ".round($hauteur)."px; overflow: hidden;$backg'></div>";
    89116        }
    90117        // Ajouter un div de plus en dessous
  • _plugins_/image_ragged/modeles/img_ragged.html

    r23053 r33502  
    1515<img234|ragged|couleur> pour specifier la couleur de fond à decouper. Si on n'en specifie pas, on detoure le transparent.
    1616
    17 ]<BOUCLE_doc(DOCUMENTS){id_document}>
    18  [(#FICHIER|copie_locale|image_ragged{#ENV{align,left},#ENV{margin},#ENV{couleur,#ENV{color,#ENV{colour}}}})]
     17]<BOUCLE_doc(DOCUMENTS){id_document}{tous}>
     18 [(#FICHIER|image_ragged{#ENV{align,left},#ENV{margin},#ENV{couleur,#ENV{color,#ENV{colour}}}})]
    1919</BOUCLE_doc>
  • _plugins_/image_ragged/plugin.xml

    r25251 r33502  
    88        </auteur>
    99        <version>
    10           0.1
     10          0.2
    1111        </version>
    1212        <etat>
Note: See TracChangeset for help on using the changeset viewer.