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; }