8791 sujets

Développement web côté serveur, CMS

Bonjour à tous,

Pour l'upload d'images par les utilisateurs sur mon site, j'utilise à plusieurs reprises le redimensionnement d'image.

Voici un exemple de mon code


$targ_w = $targ_h = 150;

$fichier = "images/exemple.jpg";
$source = imagecreatefromjpeg($fichier);
$thumb = ImageCreateTrueColor($targ_w,$targ_h);

imagecopyresized($thumb,$source,0,0,$_POST['x'],$_POST['y'],$targ_w,$targ_h,$_POST['w'],$_POST['h']);

$nom_photo = "photo.jpg";
$chemin = "photos/";
ImageJpeg($thumb,$chemin.$nom_photo,100);


Je me suis rendu compte qu'en utilisant Imagecopyresized (comme dans l'exemple), le redimensionnement fonctionne très bien.
En revanche, si je le remplace par Imagecopyresampled (avec exactement le même code), là le redimensionnement ne fonctionne et j'obtiens une image toute noire...

Quelqu'un peut-il m'éclaire sur ce problème ?
Merci !
La fonction imagecopyresampled applique à ta vignette $thumb qui est noire ,
sur une région rectangulaire, depuis une région rectangulaire de ta $source.
Si comme moi,
tu te mélanges les hauteurs, largeur,
et coordonnées x (abcisse); coordonnées y (ordonnée),
ta région peut être appliqué dans une zone non visible de ta $thumb.
Elle reste noire comme à l'initial de ImageCreateTrueColor.

Bon courage... Smiley lol