Optimisation script de redimension d'images
Bonjour à tous,
Je suis en train de faire un script pour que mes membres puissent uploader des images lourdes
Voici ce script, ou plutôt la partie concernée, qui resize les images:
Code:
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
|
switch ($extension_fichier) {
case 'jpg': // si l'extension est un jpg
case 'jpeg': // ou un jpeg
// on récupère le fichier temporaire pour le redimensionner
$fichier_redim = $fichier_temporaire;
// puis on récupère la taille
list($width, $height) = getimagesize($fichier_redim);
// si la hauteur de base est plus petite ou égale à $hauteur alors générer l'image avec ses dimensions d'origine
if ($height <= $hauteur){
$y = $height;
$x = $width;
// sinon définir une hauteur max de $hauteur en conservant les proportions
} else {
$y = $hauteur;
$x = (int) (($width*$y)/$height);
}
$taille_fichier_redim = getimagesize($fichier_redim);
if ($taille_fichier_redim) {
// On ouvre l'image d'origine
$img_big = imagecreatefromjpeg($fichier_redim);
$img_new = imagecreate($x, $y);
// génère la miniature
$img_mini = imagecreatetruecolor($x, $y)
or $img_mini = imagecreate($x, $y);
// copie de l'image finale
imagecopyresized($img_mini,$img_big,0,0,0,0,$x,$y,$taille_fichier_redim[0],$taille_fichier_redim[1]);
imagejpeg($img_mini,$fichier_redim );
}
break; |
Je suis conscient que ce n'est pas très propre mais je ne suis pas professionnel :oops:
Le script fonctionne mais quand j'essaye d'uploader un fichier d'un peu plus de 2mo j'ai une erreur qui dit que je dépasse la mémoire allouée (39mo)
J'ai des soupçons sur le double "getimagesize" ?
C'est intégré à un script d'upload, il me semble que c'est plus sécurisé ainsi ?
Qu'en pensez vous ?
Edit:
Voici l'erreur, somme toute assez basique
Citation:
Fatal error: Allowed memory size of 39845888 bytes exhausted (tried to allocate 13824 bytes) in /home/users5/b/brunomichel/www/boutique_import/oscuploadify.php on line 72
J'imagine que si il y a deux uploads simultanés c'est une catastrophe ? :cry:
Bien cordialement
Bonne soirée