Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > Images > Imagick
Imagick Forum d'entraide pour l'extension Imagick permettant de manipuler des images en PHP (port de l'API ImageMagick).
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 06/07/2007, 19h34   #1
Membre régulier
 
Avatar de knoodrake
 
Inscription : juin 2007
Messages : 86
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : juin 2007
Messages : 86
Points : 74
Points : 74
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 ) ?
knoodrake est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/07/2007, 20h51   #2
Membre régulier
 
Inscription : juin 2007
Messages : 89
Détails du profil
Informations personnelles :
Âge : 31

Informations forums :
Inscription : juin 2007
Messages : 89
Points : 95
Points : 95
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).
dewsz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/07/2007, 21h09   #3
Membre régulier
 
Avatar de knoodrake
 
Inscription : juin 2007
Messages : 86
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : juin 2007
Messages : 86
Points : 74
Points : 74
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.
knoodrake est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h12.


 
 
 
 
Partenaires

Hébergement Web