function image_float ($img, $align, $margin=10) {
$image = valeurs_image_trans($img, "float-$align", "php");
if (!$image) return("");
$w = $image["largeur"];
$h = $image["hauteur"];
$precision = round($h / 5);
$im = $image["fichier"];
$dest = $image["fichier_dest"];
$creer = $image["creer"];
$ret .= "
";
if ($creer) {
include_spip('inc/logos'); // bicoz presence reduire_image
$nouveau = valeurs_image_trans(reduire_image($im, 0, $precision),"");
$im_n = $nouveau["fichier"];
$x_i = $nouveau["largeur"];
$y_i = $nouveau["hauteur"];
$rapport = ($w / $x_i);
$im_n = $image["fonction_imagecreatefrom"]($im_n);
// une premiere passe
// pour recuperer les valeurs
for ($j = 0; $j < $y_i; $j++) {
$transp = true;
for ($i = 0; $i < $x_i && $transp; $i++) {
if ($align == "right") $rgb = ImageColorAt($im_n, $i+1, $j);
else $rgb = ImageColorAt($im_n, ($x_i - $i)-1, $j);
$a = ($rgb >> 24) & 0xFF;
if ($a > 125) $larg[$j] ++;
else $transp = false;
}
}
$larg[-1] = $w;
$larg[$y_i] = $w;
// une deuxieme passe
// pour appliquer les valeurs
// en utilisant les valeurs precedente et suivante
for ($j = 0; $j < $y_i; $j++) {
$reste = ($precision - $j);
$haut_rest = $h - $haut_tot;
$hauteur = round(($haut_rest) / $reste);
$haut_tot = $haut_tot + $hauteur;
$resultat = min($larg[$j-1],$larg[$j],$larg[$j+1]);
$forme .= "\n";
}
// Ajouter un div de plus en dessous
$forme .= "\n";
// Sauvegarder le fichier
$handle = fopen($dest, 'w');
fwrite($handle, $forme);
fclose($handle);
$ret .= $forme;
}
else {
$ret .= join(file($dest),"");
}
return $ret;
}