Bonjour,

Pour des avatars, je redimensionnes automatiquement des images uploader sur le serveur.

Cependant, je souhaite l'imiter la taille des image fournit par url. Jusqu'ici, j'utilise le classique getimagesize(). Hors le poids d'un image passer en url peut-être énorme, et comme getimagesize() charge toute l'image avant de retourner quoi que ce soit, et bien parfois c'est lent

Donc je voudrais fixer une limite a 30k par exemple pour l'image passer un url.

Il a t-il un moyen de vérifier le poids d'une image passer en url, sans devoir la charger complètement ? est-ce que les informations d'un get_headers($_POST['url']), s'obtiennent une fois la page complètement charger ? donc l'image aussi ?

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
 
 
redimage($_POST['url'],"../upload/avatarPasOk/".$nom,140,140, $typeText)
 
function redimage($img_src,$img_dest,$dst_w,$dst_h,$ext) {
   // Lit les dimensions de l'image
   $size = GetImageSize($img_src);  
   $src_w = $size[0]; 
   $src_h = $size[1];
 
   $fonctionName = "ImageCreateFrom".$ext;
   // 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 = ImageCreateTrueColor($dst_w,$dst_h); 
   // Copie dedans l'image initiale redimensionnée
   $src_im = $fonctionName($img_src);
 
   ImageCopyResampled($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);
 
 
}