Bonjour à tous,

Voilà je viens vous voir ici car je pense que quelqu'un parmis cette caumunauté aura la réponse lol !

Voilà je travail sur un projet perso : www.my-share.fr
qui est un site d'hébergement de photos dans le style d'image hack, avec un poils plus de fonctionnalité enfin a venir ^^
Bref

Mon soucis est qu'aujourd'hui un utilisateur envoie une image sur mon serveur, elle est redimensionné deux fois après son envoie pour obtenir au final trois images, une version original, une 800px max et une mini de 120px.

Pour la redimension j'utilise la librairie GD, cependant je suis confronté à un problème ... après avoir fais trois hébergeur différent en 1ans, je suis contrain de revoir mon code car la méthode GD demande trop de ressources côté serveur ... aujourd'hui pour exécuter la redimension d'image de 18Méga pixel je dois ficer ma Memory_Limit à 128Mo ... :S ce qui surcharge un peu mon serveur mdr

C'est pourquoi je chercher a faire les calculs de redimension avant l'upload de fichier donc côté client

J'ai testé une panoplie de code trouvé sur le web, mais aucun ne correspond à mon besoin ...

Et comme je connais pas très bien le java je m'en sort pas :'( !!!

Quelqu'un pourrait m'aider ? :)

Merci d'avance

Cordialement,

Neoboby.

6 réponses


Neoboby
Auteur
Réponse acceptée

Re moi !

Bon je pense avoir résolus mon soucis de mémoire !!

J'ai chercher à installer la librairie imagemagick sur mon serveur 1and1, c'est bien passé via ssh, mais après impossible d'activer l'extension imagick en pecl ... breff une bonne galère (de droit admin je pense), obligé de me tourner vers une autre solution...

En fouillant le web pour trouver des infos sur la librairie imagemagick je suis tombé sur phMagick, une class PHP qui utilise la librairie imageMagick, sans qu'elle ne soit installé sur le serveur (si j'ai bien compris ...)

un petit lien :
http://www.francodacosta.com/phmagick

J'upload des images de 18Méga pixel, le serveur les redimensionne en trois exemplaire différent, et le tout en 400milisecondes :-) et sans aucun soucis de surcharge de mémoire du serveur !

Bon prochaine étape, mise en place d'un système de multi-upload avec selection de plusieurs photos en un clic et barre de progression, car là envoyer dix photos de 9Mo chacune sans barre d'avancement erf que c'est long on pense que le site a planté même :(
Si vous avez des idées pour m'avancer n'hésitez pas je suis preneur ^^ !

Impossible de redimensionner côté client.
Il faut utiliser un script shell (imagemagick appellé avec shell_exec()) et là tu n'auras pas de pb de performances/limites (enfin presque :D).

Neoboby
Auteur

j'ai fais un tour vite fais sur le web afin de trouver des infos sur imagemagick, mais je comprend pas bien ce que c'est, d'un côté je trouve un logiciel de l'autre une librairie :'(

C'est une librairie que je dois installer sur mon serveur ?

Je regarderais plus en détail demain car là j'ai pas les idées claire lol :p

Merci pour la réponse en tout cas :) (si t'as plus d'info je suis preneur :D )

Oui c'est un logiciel que tu install sur ton serveur linux et que tu peux appeller en ligne de commande
Avec shell_exec en PHP tu peux appeller la commande pour modifier les images bcp plus rapidement qu'avec gd

Neoboby
Auteur

Nickel, j'ai plus qu'à trouver comment faire chez 1and1 pour activer ca ! merci pour les infos :)

[Edit]
Installation de la librairie en cours (plus simple que je ne le croyais lol)
Me reste plus qu'à apprendre à m'en servir, pis je posterai la solution ici (histoire que sa serve à quelqu'un d'autre quand même ^^ )

bien qu'il existe une solution pour ça:
Agile uploader, il redimensionne les images coté clients et leurs poids passe d'environ > 2 Mo => ~~ 100 Ko.
voici le lien:
agile uploader
il est très rapide même avec une connexion lente comme moi :p ( 120 Ko/s de téléchargement)
Merci