Bonjour,
Voici ci-dessous un script, qui redemissionne les images rectangulaires au format carré sans perte de pixels (croppage et redimensionnement)
Ce script marche super bien!
Cependant, j'aimerais adapter ce script pour redimensionner une image en fonction d'une hauteur et d'une largeur donner...
Exemple :
J'ai une image de 400px de largeur par 200px de hauteur.
Et je veux qu'elle devienne 170px de largeur par 115px de hauteur...
Donc comment modifier la fonction ci-dessous pour faire un redimenssionnement et ensuite un croppage de manière à avoir une miniature rectangulaire sans déformation de pixel?
Un grand merci!
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 function thumbnail($src, $dest='', $largeur) { ini_set('memory_limit','16M'); if(!$dest) $dest = $src; $infos_image=getimagesize($src); $src_x = $infos_image[0]; // largeur de l'image $src_y = $infos_image[1]; // hauteur de l'image $im_src=@imagecreatefromjpeg($src); if(!$im_src) $im_src=@imagecreatefrompng($src); if(!$im_src) $im_src=@imagecreatefromgif($src); if ($im_src=='') return array_push($_SESSION['warning'], WRONG_FILE_TYPE); //on determine un carré avec la plus petite largeur if($src_x >= $src_y){ $dim=$src_y; $verticale='1'; }elseif($src_x <= $src_y){ $dim=$src_x; $horizontale='1'; }else $dim=$src_x; //on determine le point de depart x,y if($verticale == '1'){ $point_x_ref=($src_x/2)-($dim/2); $point_y_ref='0'; } if($horizontale == '1'){ $point_x_ref='0'; $point_y_ref=($src_y/2)-($dim/2); } $im_dest=imagecreatetruecolor($largeur, $largeur); imagecopyresampled($im_dest, $im_src, 0, 0, $point_x_ref, $point_y_ref, $largeur, $largeur, $dim, $dim); imagedestroy($im_src); imagejpeg($im_dest, $dest, 90); imagedestroy($im_dest); }
Partager