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 :

[ImageMagick] Limitations mémoire : juste une idée farfelue


Sujet :

Bibliothèques et frameworks PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de knoodrake
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    86
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2007
    Messages : 86
    Par défaut [ImageMagick] Limitations mémoire : juste une idée farfelue
    Bonjour.

    Je suis en ce moment confronté -comme beaucoup de gens- au probleme de limitation de la mémoire allouable par PHP (8Mo chez moi).
    Et comme il n'est pas souvent possible de toucher a ce réglage dans le php.ini ou autre, par exemple dans les hébergements mutualisés..


    Donc j'ai eu une idée.

    1: découper le fichier en par exemple 10 morceaux(a coup de fread() ou truc dans le genre qui peu lire le binaire).
    2: charger puis traiter un morceau après l'autre ( voir même en créant a côté une image à palette aux memes dimensions que celle avant découpage pour simplifier les calculs relatifs aux emplacements, etc.. )
    3: pour chaque morceaux, une foi traité, l'enregistrer sur le disque et libérer sa mémoire, alors libre pour le prochain morceaux.
    4:reprendre ses fread()-like et re-assembler les 10 morceaux en une seule image.

    Avec l'exemple de 10 morceaux, on pourrait traiter une image de 13000*10000px par exemple sans probleme.
    Il y aurait une -grosse- perte de performance notament a cause des access disques, mais pour une utilisation personelle ou bien avec une bonne gestion de la charge du serveur ça pourrait le faire.

    Par contre, -le- probleme a mon avis c'est..
    l'entête du fichier. il faudrait pouvoir la récupérer, puis la coller sur chaque morceaux, et enfin, a la fin, l'enlever des morceaux avant de réassembler l'image.
    Beaucoup plus grave encore: l'image est (généralement: jpeg, png) compréssé, donc pas 'découpable' façon brute et bourrin. En plus, la librairie jpeg n'existe pas pour php a ma conaissance ( mais de toute façon, ca ne ferai que reporter le probleme).


    Bref. voila une idée qu'elle est farfelue non ?
    Qu'en pensez-vous ? c'est faisable (sans ré-écrire l'algo jpeg ) ? je rêve (je croi que oui ) ?

  2. #2
    Membre éprouvé
    Inscrit en
    Juin 2007
    Messages
    89
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Juin 2007
    Messages : 89
    Par défaut
    Tu as bien analyser la problématique, pour traiter une image il faut la décompresser que ce sois jpg, png ou gif. Par contre tu peux traiter l'image dans un processus externe (exec par exemple) et donc d'utiliser d'autres programme sans limitation de mémoire (je pense à ImageMagik).

    Sinon tu stockes les images et tu les traites sur un autres serveur (ou chez toi pour un site perso).

  3. #3
    Membre éclairé Avatar de knoodrake
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    86
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2007
    Messages : 86
    Par défaut
    le probleme est que je cherche la solution miracle moi
    imagemagik n'est pas souvent installé, quant a l'idée de délocaliser le traitement, c'est une idée oui m'enfin, elle a ses gros inconvenients.

    Je viens de faire une petite rechereche express sur google, et j'ai remarqué qu'il était possible de récupérer des jpeg pour lesquels il manque un bout (avec certains logiciels payants ou avec de la patience et un éditeur hexa
    Donc ça donne espoir..

    Je vais essayer de jeter un coup d'oeil a la libjpeg que j'avai téléchargé du le temps ou je m'était essayé a l'opengl, mais il y a peu de chance que j'y comprene quoi que ce soit
    Edit: comme prévu j'y comprend rien.

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

Discussions similaires

  1. [1.x] Avoir une limite mémoire différente sur le backend
    Par pmithrandir dans le forum Symfony
    Réponses: 6
    Dernier message: 05/09/2011, 20h05
  2. Réponses: 323
    Dernier message: 11/06/2010, 20h23
  3. Réponses: 50
    Dernier message: 12/04/2007, 11h04
  4. Relation de dépendance entre résultats : une idée farfelue ?
    Par mdef dans le forum Langages de programmation
    Réponses: 4
    Dernier message: 18/07/2005, 02h04
  5. Problème mémoire avec une dll par chargement dynamique
    Par widze19 dans le forum C++Builder
    Réponses: 6
    Dernier message: 15/12/2003, 13h20

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