je fournis mon code ...
function
reduit_fichier($fichier_image,$scale,$max_v,$max_h,$source,$destination,$pre
fixe)
{
// MAX_V = HAUTEUR -- MAX_H = LARGEUR
// le nom de l'image "scalée" commencera par ti_ et le nom du fichier
original
$ti_fichier_image=$prefixe.$fichier_image;
global $nomfichier;
$im = ImageCreateFromjpeg("$source"."$fichier_image");
$v=ImageSY($im); // $v prend la hauteur
$h=ImageSX($im); // $h prend la largeur
//Floor Arrondi à l'entier inférieur
//ON GERE LA HAUTEUR
if ($v > $max_v) // Si la hauteur Img, est plus grand que le max, on reduit
{
$taux_hauteur=$v/$max_v; // On recupere le taux necessaire pour retrecir
$ti_v=(int)floor($max_v); // ti_v = taille final de la hauteur
$ti_h=(int)floor($h/$taux_hauteur); // ti_h = taille final de la largeur
}
else $ti_v=$v; // Sinon on fixe la hauteur
// Si il n'a pas deja subbit une modification de la taille
if ($ti_h!="") $h_comp = $ti_h; else $h_comp = $h;
if ($ti_v!="") $v_comp = $ti_v; else $v_comp = $v;
//ON GERE LA LARGEUR
if ($h_comp > $max_h)
{
$taux_largeur=$h_comp/$max_h;
$ti_h=(int)floor($max_h);
$ti_v=(int)floor($v_comp/$taux_largeur);
}
else $ti_h=$h_comp;
$ti_im = ImageCreate($ti_h,$ti_v);
imagecopyresized($ti_im,$im,0,0,0,0,$ti_h,$ti_v,$h,$v);
imagejpeg($ti_im,"$destination"."$ti_fichier_image",$scale);
$nomfichier = $destination.$ti_fichier_image;
}
Ce code est intégré dans mon nouveau site ..
Mais personne ne m'a répondu ... qu'utilisais vous avec Spip ???
ça manque vraiment je trouve .. une gestion de galerie non?
à+
Julien
"ONFRAY Matthieu" <silicium@japanim.net> a écrit dans le message de news:
5.2.0.9.0.20021219184319.00af8a30@pop.pro.proxad.net...
A ce propos, tu peux surement nous aider : la creation de vignettes dans
spip n'est pas fameuse, a cause de problemes de la librairie GD, qu'on n'a
pas reussi a maitriser.
moi j'utilise ca :
function CreateImage($size,$source,$dest,$border=0, $msg=true)
{
$sourcedate = 0;
$destdate = 0;
global $ImageTool;
//gestion du cache : absolument utile ???
if (file_exists($dest)) {
clearstatcache();
$sourceinfo = stat($source);
$destinfo = stat($dest);
$sourcedate = $sourceinfo[10];
$destdate = $destinfo[10];
}
if (!file_exists("$dest") or ($sourcedate > $destdate)) {
$imgsize = @GetImageSize($source);
if (empty($imgsize[0])) die("impossible de lire $source");
$width = $imgsize[0];
$height = $imgsize[1];
// type=1=>gif, type=2=>jpeg
$type = $imgsize[2];
$new_width = $size;
$new_height = ceil($size * $height / $width);
if ($ImageTool == "gd")
{
if ($type == 1) $im = @imagecreatefromgif($source);
else $im = @ImageCreateFromJPEG($source);
if (empty($im)) die("impossible de créer une image
depuis $source");
$new_im = ImageCreate($new_width,$new_height);
$res =
@ImageCopyResized($new_im,$im,0,0,0,0,$new_width,$new_height,ImageSX($im),Im
ageSY($im));
if (empty($res)) die("impossible de redimensionner
l'image $new_im");
if ($type == 1) $im = imagegif($new_im,$dest,80);
else ImageJPEG($new_im,$dest,80);
imagedestroy($new_im);
}
elseif ($ImageTool == "im") system("$convert -quality 80
-antialias -sample $new_width" . "x" . "$new_height -bordercolor black
-border $border \"$source\" \"$dest\" 2>&1");
}
if ($msg) echo "<br>image <i>$dest</i> créée !";
}
c du code maison qui marche impec. il est pour gd anciens. dans le cas de
gd récent (2.0), la fonction imagecreate est à remplacer par une autre
ONFRAY Matthieu
webmaster de Japanim
Toute l'actualité de la japanimation !
http://www.japanim.net