OVH Cloud OVH Cloud

imagecreatefromjpeg

4 réponses
Avatar
Papilou
Salut,

j'utilise imagecreatefromjpeg depuis assez longtemps, et elle
marche plutot bien, sauf que ...
Je créé des miniatures et ca fonctionne sur persque tous les
jpeg, sauf certaines.
Je pense savoir pourquoi et j'aimerai votre aide.
Il me semble que les images de plus de 1 Mo ne sont pas
utilisable avec imagecreatefromjpeg
Est-ce vrai? et comment y remédier???
merci de votre aide

4 réponses

Avatar
Thibaut Allender
Il me semble que les images de plus de 1 Mo ne sont pas
utilisable avec imagecreatefromjpeg
Est-ce vrai? et comment y remédier???


Non, ça dépend surtout de la taille en pixels de l'image et de la limite
mémoire imposée en PHP (8Mo par défaut)
Lors du traitement, l'image est stockée au format brut en mémoire, pour
trouver la taille occupée, multiplier sa largeur par sa hauteur en
pixels par 3 (car 24 bits par pixel)

par exemple, une image en 1024*768 pèse :
1024*768*3 / 1024 / 1024 = 2,3Mo

il est facile de tester si l'image sera traitable ou pas avec un
getimagsize() en amont.

--
thibaut allender | http://capsule.org | http://photo.capsule.org

Avatar
Papilou
Oui, merci de ta réponse...
On disait la même chose, mais toi tu le dis mieux que moi....
Bon j'ai trouvé une solution, pour traiter le programme avec de
la mémoire en plus.
Il faut créer un fichier .htacess, dans le répertoire qui
contient le programme php, et y mettre ceci.

<FilesMatch ".(php|html?)$">
php_value memory_limit 24M
</FilesMatch>

Il exite bien une autre solution, mais qui ne fonctionne pas chez
moi, enfin chez mon hébergeur...
c'est :
ini_set("memory_limit",'24M');
que l'on met dans le programme php.

Voila et merci
Avatar
Thibaut Allender
Bon j'ai trouvé une solution, pour traiter le programme avec de
la mémoire en plus.


A condtion de pouvoir changer ce paramètre, ce qui n'est pas toujours
possible.
Une autre solution consiste à utiliser un programme externe pour
redimensionner l'image, tel que imagemagick.
Le processus de traitement ne dépendant plus de PHP, la limite de
mémoire n'intervient pas.

--
thibaut allender | http://capsule.org | http://photo.capsule.org

Avatar
Papilou
Une autre solution consiste à utiliser un programme externe
pour

redimensionner l'image, tel que imagemagick.
Le processus de traitement ne dépendant plus de PHP, la limite
de

mémoire n'intervient pas.


Merci, mais peux tu m'en dire plus??? je suis allé voir sur des
sites, mais je ne vois pas comment utiliser ce logiciel sur un
hébergement mutualisé???? Il faut l'installer??? sur le
serveur???? comment faire? as tu une solution?
merci