Redimensionnement image après UPLOAD

Fred -  
 Fred -
Bonjour,

J'utilise cette fonction pour redimensionner une image après son upload (trouvée ici :http://www.asp-php.net/scripts/asp-php/vignette.php dans le commentaire car la fonction proposée ne fonctionnait pas non plus tout le temps...)

function redimage($img_src,$img_dest,$dst_w,$dst_h) {
// Lit les dimensions de l'image
$size = GetImageSize($img_src);
$src_w = $size[0]; $src_h = $size[1];
$zoom_h = $max_h / $src_h;
$zoom_w = $max_w / $src_w;
$zoom = min($zoom_h, $zoom_w);
$dst_h = $zoom<1 ? round($src_h*$zoom) : $src_h;
$dst_w = $zoom<1 ? round($src_w*$zoom) : $src_w;

if (function_exists('imagecreatetruecolor'))
{
$dst_im = imagecreatetruecolor($dst_w, $dst_h);
}
else
{
$dst_im = imagecreate($dst_w, $dst_h);
}

if (function_exists('imagecopyresampled'))
imagecopyresampled($dst_im, $src_im, 0,0,0,0, $dst_w,$dst_h,$src_w,$src_h);
else imagecopyresized($dst_im, $src_im, 0,0,0,0, $dst_w,$dst_h,$src_w,$src_h);
}

Cette fonction est appelée ainsi :

// On redimensionne l'image en 140 x 120 pixels
redimage($img1_dest,$img1_dest,140,120);

Or, cela fonctionne très bien pour certaines images et pas pour d'autres.
Par exemple cela ne passe pas pour celle-ci :
http://portal.unesco.org/...

J'ai ce type de message d'erreur :
imagecreatetruecolor invalid image dimension
imagecopyresampled(): supplied argument is not a valid Image resource

Une idée d'où peut provenir le pb ?

Merci

Fred
A voir également:

2 réponses

Profil bloqué
 
Bonjour ,

As-tu éssayer de la redimenssioner comme c'est écrit ?
0
Fred
 
oui oui, j'ai testé cette fonction mais ce n'est pas mieux :
<?
function redimage($img_src,$img_dest,$dst_w,$dst_h) {
// Lit les dimensions de l'image
$size = GetImageSize($img_src);
$src_w = $size[0]; $src_h = $size[1];
// Teste les dimensions tenant dans la zone
$test_h = round(($dst_w / $src_w) * $src_h);
$test_w = round(($dst_h / $src_h) * $src_w);
// Si Height final non précisé (0)
if(!$dst_h) $dst_h = $test_h;
// Sinon si Width final non précisé (0)
elseif(!$dst_w) $dst_w = $test_w;
// Sinon teste quel redimensionnement tient dans la zone
elseif($test_h>$dst_h) $dst_w = $test_w;
else $dst_h = $test_h;

// Crée une image vierge aux bonnes dimensions
$dst_im = ImageCreate($dst_w,$dst_h);
// Copie dedans l'image initiale redimensionnée
$src_im = ImageCreateFromJpeg($img_src);
ImageCopyResized($dst_im,$src_im,0,0,0,0,$dst_w,$dst_h,$src_w,$src_h);
// Sauve la nouvelle image
ImageJpeg($dst_im,$img_dest);
// Détruis les tampons
ImageDestroy($dst_im);
ImageDestroy($src_im);

// Affiche le descritif de la vignette
echo "SRC='".$img_dest."' WIDTH=".$dst_w." HEIGHT=".$dst_h;
}
?>

<IMG <?redimage("monimage.jpg","temp/monimage.jpg",XX,YY)?>>

Fred
0