Fonction redimension image jpg png gif

bobo
Invité n'ayant pas de compte PHPfrance

16 janv. 2008, 12:10

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

}

bobo
Invité n'ayant pas de compte PHPfrance

16 janv. 2008, 12:28

Autant pour moi c'est resolu ^^

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

16 janv. 2008, 12:42

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 !!! ;)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

bobo
Invité n'ayant pas de compte PHPfrance

16 janv. 2008, 13:09

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

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

16 janv. 2008, 13:15

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 :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphanteau du PHP | 15 Messages

16 janv. 2008, 13:58

Oki merci :p