IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

[GD] Utilisation de imagecreatefromjpeg() avec des images de plus de 2 000 pixels


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 38
    Points : 32
    Points
    32
    Par défaut [GD] Utilisation de imagecreatefromjpeg() avec des images de plus de 2 000 pixels
    Bonjour,

    Je vous expose mon problème.
    J'ai un script pour héberger des photos, qui redimensionne automatiquement en 640x480.
    Tout marche bien pour les photos inferieur à 2000 pixels.
    Au dessus, j'ai le script qui plante totalement, et le problème viens bien de la fonction imagecreatefromjpeg( $fichierSource );

    Savez vous si on es limité en résolution avec cette fonction?
    Est ce l'hébergeur qui peut avoir mis cette limite?
    Ou ca n'a rien a voir?

    Merci de vos réponses et de l'attention que vous pretez à ce message.

    Jordan.

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 17
    Points : 18
    Points
    18
    Par défaut
    le temps que le serveur execute l'operation demandé dois etre assez long pour une si grande image alors peut etre que le "timeout" du serveur est pas assez grand et que la requete a pas le temps d'etre terminer avant qu'il soit écouler..

    Peut etre tu devrait essayé avec un jpg de 2000*2000 mais tres compressé et avec une seul couleur voir si c'est la résolution qui pose probleme ou bien la taille du fichier.

    Enfin bon c'est mon idée c'est peut etre pas du tout ca.. A++

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 38
    Points : 32
    Points
    32
    Par défaut
    Merci pour ta réponse.

    Je viens d'essayer un truc vite fait.

    J'ai créé un fichier test.php avec ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    header ("Content-type: image/jpeg");
    $image = imagecreatefromjpeg("fotoforum.jpg");
     
    imagejpeg($image); // 4 : on a terminé de faire joujou, on demande à afficher l'image
    Lorsque fotoforum.jpg fais 2000x2600 pixels (taille 213Ko) ça me met l'erreur suivante :
    Error 500 - Internal server error

    Un problème inattendu est survenu.
    Veuillez réessayer ultérieurement.
    Lorsque fotoforum.jpg fais 2048x829 pixels (taille 102Ko) l'image s'affiche.


    EDIT : J'ai fait encore plein d'essais et voila ce que j'ai trouvé, les images ne doivent pas faire plus de 12.5Millions de pixels environ.

    Savez vous si il y a un reglage dans le php.ini ou un truc dans le genre?

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 17
    Points : 18
    Points
    18
    Par défaut
    Désolé j'ai pas de solution , c'est juste pour dire que je rencontre le meme probleme j'ai mon hebergeur free.fr . Je peut uploadé une grande image 1250*1980 mais qui ne depasse pas les 300ko. En revanche une image plus petite mais moins compresser de plus de 500ko j'ai aussi droit a une erreur 500.
    Comme je le disais je suis presque sur que l'erreur 500 apparait lorsque une requete n'a pas abouti au bout du timeout imposé par le serveur qui chez moi est indiqué par le phpinfo a 30 ( secondes je suppose ).
    J'ai fait un test avec une grosse image de 800ko en ligne, => Erreur 500
    Si maintenant je fait la meme en local => ca fonctionne. J'en conclue que mon ordinateur effectue les calcul necessaire a la creation de miniature bcp plus rapidement que sur le serveur et donc le delai n'est pas dépassé.

    Quelle est ton hebergeur ? Faudrait avoir l'avis de personne ayant essayé ca sur des serveur dediée ou plus puissant que ce de free etc. Mon avis est que le probleme vient tu temps que le serveur met a traiter la requete. Sans en etre sur, tes problemes surviennent t-il en local ou en ligne ??

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 38
    Points : 32
    Points
    32
    Par défaut
    Oui mais notre problème n'est pas tout à fait le meme.

    Car pour moi une image de résolution 1704x2272 pixels en taille de 1,64Mo passe tres bien et j'arrive à la redimensionner en 680x460.

    Mon problème viens bien de la Dimension du pixel. Lorsque l'image est superieure à 15.5 Millions de pixels, ca ne marche pas. Sinon, je peux mettre une image aussi grande que je veux.

    Je vais tester ca en local pour voir ce que ca donne.

    A toute.

    Edit :

    Alors ca y es j'ai testé en local et j'en ai tiré une conclusion :
    Le problème viens bien de la configuration du fichier php.ini
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    memory_limit = 8M      ; Maximum amount of memory a script may consume (8MB)
    Lorsque la mémoire alloué n'est pas suffisante, on a bien une erreur.
    En passant ce dernier à 30M, ca marche sans problème.

    Edit 2 :

    J'ail lu que pour le redimensionnement de photo, le php n'est pas le mieux.
    Savez vous quel est le language le plus approprié à cette fonction?
    Connaissez vous un script?

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 17
    Points : 18
    Points
    18
    Par défaut
    Ah ok ca viendrait de la alors... je suis aussi interesser par d'autre methode plus efficace et moins gourmande pour redimmensionner les images.

    Edit: Je vient de penser a un truc, serait -il possible de faire tout ca en javascript ? le but étant que les miniature soit creer par l'ordinateur du client et non le serveur, ainsi a l'envoi le visiteur uploaderai l'original et la miniature. Et on aurait plu ce probleme. je vais me renseigner A+

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 38
    Points : 32
    Points
    32
    Par défaut
    Ok, je n'y avais pas pensé du tout.
    Merci pour l'info, vais essayé de voir ca aussi de mon coté.
    Sinon, il y a le flash et le java...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Utilisation web service avec des images
    Par Nanais19 dans le forum Services Web
    Réponses: 5
    Dernier message: 04/10/2012, 16h08
  2. Probleme de double rolover en CSS avec des images
    Par gandoulfe dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 12/04/2006, 16h24
  3. Liaison avec des images dans une table
    Par ValérieBruxelles dans le forum Access
    Réponses: 5
    Dernier message: 25/11/2005, 14h21
  4. Réponses: 1
    Dernier message: 06/08/2003, 11h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo