Bonjour

J'essai de faire une fonction qui redimensionne une image de taille W * H vers une image plus petite.

puis une fois redimmensionné je la copie dans une image carrée en rajoutant des bandes à droite et gauche si mon image et plus haute que large ou inversement :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
$image_p = imagecreatetruecolor($width, $height); 						
imagealphablending( $image_p, false );
imagesavealpha($image_p,true);
imagecopyresampled($image_p, $im, 0, 0, 0, 0, $width, $height, $aImg[0], $aImg[1]);//$im image originale, aImg[0] largeur de $im, $aImg[1] hauteur de $im
$saveImg = create_function ('$img, $fileNa', 'return @imagepng($img, "../test/$fileNa");');				
$saveImg ($image_p, "tux2re.png");				
 
$image_p2 = imagecreatetruecolor(max($width,$height), max($width,$height)); // image carré				
if($width>$height){
	$destx=0;
	$desty=($width-$height)/2;
}else{
	$destx= ( $height-$width)/2;
	$desty=0;
}				
imagealphablending( $image_p2, false );
imagesavealpha($image_p2,true);				
imagecopy($image_p2,$image_p,$destx,$desty,0,0,max($width,$height),max($width,$height));
 
$saveImg ($image_p2, "tux2sq.png");
et cela donne ceci :
http://jpprade.club.fr/test/testtux.html

la premiere image redimensionnée a bien le fond transparent
mais l'image carré a la bande gauche transparente et le droite noire ce que je ne comprend pas trop

Si vous voyez l'erreur ou que vous connaissez un tuto qui explique la transparence je suis preneur merci !