Bonjour,

Je galère depuis des heures sans trop rien comprendre, pourriez vous m'aider ?

je souhaite récupérer des images portrait ou paysage et les faire rentrer dans un carré sur fond blanc

j'arrive a créer une image blanche
j'arrive a dimension l'image portrait ou paysage pour qu'elle rentre dans le carré blanc

mais quand je copy l'une sur l'autre le fond devient noir :/

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
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
<?php
 
print '<body style="background-color:#aaaaaa;"></body>';
 
function image_carre($fichier_source,$fichier_destination,$largeur,$hauteur)
{
 
 
// On charge l'image originale
$original = imagecreatefromstring(file_get_contents($fichier_source));
$largeur_original = imagesx($original);
$hauteur_original = imagesy($original);
 
 
if($largeur_original > $hauteur_original) { 
								print '<br>paysage';
								$original = imagescale($original, $largeur);}
else						{
							print '<br>portrait '."($largeur_original/$hauteur_original)=".($largeur_original/$hauteur_original);
							$original_nouvelle_largeur = ($largeur_original/$hauteur_original)*$largeur;
							print '<br>nouvelle largeur = '.$original_nouvelle_largeur;
							$original = imagescale($original, $original_nouvelle_largeur);
							}
 
 
 
// On crée une nouvelle image vide aux même dimensions, sur fond blanc
$white = imagecreatetruecolor($largeur, $hauteur);
$whitebg = imagecolorallocate($white, 255, 255, 255); // couleur de fond : blanc 255,255,255 ; noir 0,0,0 etc.
 
imagefilledrectangle($white, 0, 0, $largeur, $hauteur, $whitebg);
imagecopy($white, $original, 0, 0, -($largeur/2)+$original_nouvelle_largeur/2, 0, $largeur, $hauteur);
 
$final = $white;
 
@unlink($fichier_destination);
imagewebp($final,$fichier_destination,70); // Generate webp image and save to location
 
print '<br><img src="'.$fichier_destination.'" ></img>';
 
imagedestroy($final);
imagedestroy($original);
//imagedestroy($white);
 
 
}
 
 
 
$format_a = array(
//array("fichier"=>"cart_default","largeur"=>"125","hauteur"=>"125"),
//array("fichier"=>"home_default","largeur"=>"250","hauteur"=>"250"),
array("fichier"=>"large_default","largeur"=>"800","hauteur"=>"800"),
//array("fichier"=>"medium_default","largeur"=>"452","hauteur"=>"452"),
//array("fichier"=>"small_default","largeur"=>"98","hauteur"=>"98"),
 
);
 
foreach($format_a as $format)
{
//$fichier_source = "source.jpg";
$fichier_source = "https://canadiantire.scene7.com/is/image/CanadianTire/0530180_1?defaultImage=image_na_EN&fmt=jpg&fit=constrain,1&wid=573&hei=499";
$fichier_destination = $format['fichier'].'.jpg';	
image_carre($fichier_source,$fichier_destination,$format['largeur'],$format['hauteur']);
}	
 
 
?>