Pages: 1
Le nouveau système d'upload est tout simplement génial. Et cela fonctionne même chez Free ^^
Juste pour savoir, comment est réalisé le calcul des paramètres maximum acceptables pour l'upload ? Chez Free, par exemple, je ne suis pas parvenu à dépasser les 2700 x 2025 px alors que la limite annoncée est de 3000 x 2000 px.
Il est bien précisé qu'il s'agit d'une estimation qui ne devrait pas faire autorité mais on a souvent tendance à flirter avec les limites ;-)
Hors ligne
Voilà l'algorithme :
$fudge_factor = 1.7; $available_memory = get_ini_size('memory_limit') - memory_get_usage(); $max_upload_width = round(sqrt($available_memory/(2 * $fudge_factor))); $max_upload_height = round(2 * $max_upload_width / 3); // we don't want dimensions like 2995x1992 but 3000x2000 $max_upload_width = round($max_upload_width/100)*100; $max_upload_height = round($max_upload_height/100)*100; $max_upload_resolution = floor($max_upload_width * $max_upload_height / (1000000));
En gros, je connais de manière approximative le nombre de pixels que GD peut gérer pour une quantité de mémoire donnée, moyenne un coefficient "flou", le $fudge_factor. J'ai trouvé cet algorithme sur le web :
memoryNeeded = largeur x hauteur x profondeur_en_bits x (nombre de canaux / 8) * fudge_factor;
J'ai simplifié en considérant que profondeur = 8 et nombre de canaux = 3.
Mes tests ont montré un $fudge factor de 1.6+e donc j'ai arrondi à 1.7 de manière pessimiste. De plus, pour ne pas donner qu'un nombre de pixels qui n'est pas toujours très parlant, j'ai voulu donné des dimensions largeur*hauteur et j'ai considéré un format 3/2 (j'aurais pu prendre 4/3 comme sur un tas d'appareils compacts, mais j'ai choisi 3/2 comme sur les reflex)
Est-ce que cela répond à ta question ? :-)
Hors ligne
plg a écrit:
Est-ce que cela répond à ta question ? :-)
Tout à fait ! Merci pour ces explications. Cet algo est pas mal du tout et donne une excellent appréciation des limites selon l'hébergeur. J'ai testé chez e-clicking et le résultat est très proche.
Bravo encore pour cette trouvaille ;-)
Hors ligne
Pages: 1