Page 1 sur 1

Fonction redimension image jpg png gif

Posté : 16 janv. 2008, 12:10
par bobo
Bonjour,
Alors voila j'ai un probléme aveec cette fonction...
A la base elle était faite pour créer de jpg png et j'ai rajouter pour redimensionner des gif
Mais le probléme c'est que tout marche sauf pour les gif qui me renvoi pas l'image :(

Savez vous d'ou vient le probléme??? :(
function create_thumbs($d,$file, $w, $h) {
global $upload;




$sfile = $upload  . $file;
$dfile = $d . $file;

switch (getextension($sfile)) {
case 'jpg':
case 'jpeg':
$simg = imagecreatefromjpeg($sfile);
break;
case 'png':
$simg = imagecreatefrompng($sfile);
break;
case 'gif':
$simg = imagecreatefromgif($sfile);
break;
}
$currwidth = imagesx($simg);
$currheight = imagesy($simg);

//set the dimensions of the thumbnail
if ($currheight > $currwidth ) {
$zoom = $h / $currheight;
$newheight = $h;
$newwidth = $currwidth * $zoom;
$dimension=1;
} else {
$zoom = $w / $currwidth;
$newwidth = $w;
$dimension=0;
$newheight = $currheight * $zoom;
}

//create the resource img for the thumbnail
$dimg = imagecreate($newwidth, $newheight);

//convert truecolor immage resource to palette image resource (so we can count the colors...)
imagetruecolortopalette($simg, true, 256);
$palsize = ImageColorsTotal($simg);
for ($i = 0; $i < $palsize; $i++) {
$colors = ImageColorsForIndex($simg, $i);
ImageColorAllocate($dimg, $colors['red'], $colors['green'], $colors['blue']);
}

imagecopyresized($dimg, $simg, 0, 0, 0, 0, $newwidth, $newheight, $currwidth, $currheight);
switch (getextension($sfile)) {
case 'jpg':
case 'jpeg':
imagejpeg($dimg, $dfile);
break;
case 'png':
imagepng($dimg, $dfile);
break;
case 'gif':
$simg = imagecreatefromgif($sfile);
break;
}

ImageDestroy($simg);
ImageDestroy($dimg);

}

Posté : 16 janv. 2008, 12:28
par bobo
Autant pour moi c'est resolu ^^

Posté : 16 janv. 2008, 12:42
par Ryle
Je suppose qu'il t'a suffit de remplacer le "$simg = imagecreatefromgif($sfile);" par un "imagegif($dimg, $dfile); " ? :)

Modération :
Puisque ta question est résolue, j'ajoute le tag [Résolu]
pour indiquer aux personnes qui voudront consulter ce sujet qu'il contient une solution.

Tu peux réaliser cette opération toi-même
en cliquant sur le bouton Image qui s'affiche en haut à gauche de ce sujet
si tu as posté le 1er message en tant que membre (inscrit et identifié).

Alors... inscris-toi !!! ;)

Posté : 16 janv. 2008, 13:09
par bobo
Oui tout a fait ^^
Par contre comme je suis pas inscrit je peux pas mettre resolu désolé
Je vais m'inscrire peut etre que je peux le faire apres :p

Posté : 16 janv. 2008, 13:15
par Ryle
Je te l'ai ajouté comme tu avais posté le sujet en tant qu'invité :)

C'est juste pour les prochaines fois que je te proposais de t'inscrire :)

Posté : 16 janv. 2008, 13:58
par Oxley
Oki merci :p