[spip-dev] GD2 et taille memoire

Depuis un certain temps (la 1.8.2 il me semble) l'utilisation de la GD2 pour generer des vignettes pose des problemes lors de l'upload d'images trop grosses : la memoire necessaire depasse la limite, et cela plante le script, sans donner la possibilite a l'utilisateur de supprimer son image. Il faut y aller par FTP a chaque fois.

En fait, apres investigation, c'est le ImageCreateFrom... qui cree en memoire une image 32 bits avec le nombre de pixels de l'image d'origine, qui peut donc s'averer tres grosse.
Pas vraiment de solution alternative pour le moment, si ce n'est le calcul de la taille memoire necessaire, et de la taille memoire disponible. Cela utilise la fonction memory_get_usage disponible a partir de php 4.3.2

Je propose donc un patch pour la svn
qui,
lorsque la fonction memory_get_usage est presente,
calcule la taille memoire disponible
et, si elle n'est pas suffisante, s'abstient de charger l'image source et cree une vignette toute noire.
on pourrait aussi renvoyer NULL ce qui provoque l'affichage de l'image d'origine redimenssionnee cote client, mais, dans mon cas particulier, je sais que les utilisateurs ne se poseront pas de questions dans ce cas, et ce sera deplorable cote espace public en temps de chargement.
Avec la vignette noire, on sait que il y a un probleme, ca se voit. Ca oblige l'utilisateur a recommencer apres avoir redim son image.

CM

inc_logos.patch (4.17 KB)