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 04/12/2006, 10h22   #1
Membre habitué
 
Avatar de sami_c
 
Inscription : mai 2002
Messages : 633
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 633
Points : 147
Points : 147
Par défaut [ImageMagick] imageCreateFromJpeg bouffe de la mémoire

salut,
j'ai trouvé une fonction de redimensionnement d'images :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
 
function imageResize_h($src,$dest,$maxWidth,$maxHeight,$quality=100) 
{ 
	if (file_exists($src) && isset($dest)) { 
	// path info 
	$destInfo = pathInfo($dest); 
 
	// image src size 
	$srcSize = getImageSize($src); 
 
	// image dest size $destSize[0] = width, $destSize[1] = height 
	$srcRatio = $srcSize[0]/$srcSize[1]; // width/height ratio 
	$destRatio = $maxHeight/$maxWidth; 
	if ($destRatio > $srcRatio) 
	{ 
		$destSize[1] = $maxHeight; 
		$destSize[0] = $maxHeight*$srcRatio; 
	} 
	else 
	{ 
		$destSize[0] = $maxWidth; 
		$destSize[1] = $maxWidth/$srcRatio; 
	} 
 
	// path rectification 
	if ($destInfo['extension'] == "gif") { 
	$dest = substr_replace($dest, 'jpg', -3); 
	} 
 
	$destImage = imageCreateTrueColor($destSize[0],$destSize[1]); 
SPL :(
 
	// src image 
	switch ($srcSize[2]) { 
	case 1: //GIF 
	$srcImage = imageCreateFromGif($src); 
	break; 
 
	case 2: //JPEG 
	$srcImage = imageCreateFromJpeg($src); 
	break; 
 
	case 3: //PNG 
	$srcImage = imageCreateFromPng($src); 
	break; 
 
	default: 
	return false; 
	break; 
	}
en testant sur un serveur web (compte mutu chez un hebergeur payant) avec de petites images ça passe, mais avec un jpg de 1,6 mo (résolution : 2048x1536) et j'ai eu ce message d'erreur :
Code :
Fatal error: Allowed memory size of 16777216 bytes exhausted (tried to allocate 8192 bytes) in /home/web/inc/util.inc.php on line 385
PS : la ligne 385 correspond à l'instruction
Code :
$srcImage = imageCreateFromJpeg($src);
sachant que j'ai aucun accès au serveur, et je peux pas ajouter de la mémoire, est-ce qu'on peut optimiser la fonction ? et comment ?
__________________
'...parfois l'informatique peut vous rendre fou...'
sami_c est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/12/2006, 10h27   #2
Expert Confirmé Sénior
 
Avatar de Mr N.
 
Inscription : septembre 2004
Messages : 5 421
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 5 421
Points : 5 835
Points : 5 835
Essaie de mettre la ligne suivante dans un .htaccess
Code :
php_value memory_limit "64M"
__________________
Get your motor runnin'
Head out on the highway...
Mr N. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/12/2006, 10h43   #3
Membre habitué
 
Avatar de sami_c
 
Inscription : mai 2002
Messages : 633
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 633
Points : 147
Points : 147
où dois-je mettre ce fichier ? dans quel dossier ?
__________________
'...parfois l'informatique peut vous rendre fou...'
sami_c est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/12/2006, 11h28   #4
Expert Confirmé Sénior
 
Avatar de Mr N.
 
Inscription : septembre 2004
Messages : 5 421
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 5 421
Points : 5 835
Points : 5 835
à côté de ton index.php (ou le fichier appelé par le navigateur)
peut-etre à la racine...

C'est une suggestion, c'est pas sur que ton hébergeur t'autorise à bouffer plus de memoire que tu ne devrais. Mais bon, qui ne tente rien n'a rien
__________________
Get your motor runnin'
Head out on the highway...
Mr N. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/12/2006, 09h55   #5
Membre habitué
 
Avatar de sami_c
 
Inscription : mai 2002
Messages : 633
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 633
Points : 147
Points : 147
waoo ça a marché
mais je trouve ça assez bizarre : le script n'a pas fonctionné au début à cause d'un manque de mémoire, alors on force le serveur à en donner plus...c'est bizarre que l'hebergeur laisse ce genre de truc actifs !!!! sinon pourquoi il impose une limite ???!!
__________________
'...parfois l'informatique peut vous rendre fou...'
sami_c est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/12/2006, 10h01   #6
Expert Confirmé Sénior
 
Avatar de Mr N.
 
Inscription : septembre 2004
Messages : 5 421
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 5 421
Points : 5 835
Points : 5 835
Je sais pas. A toi de lui demander

Par contre si tu veux pas te faire allumer, n'augmente pas à 64M, tu n'en as pas besoin. Limite toi à 20M-24M c'est plus raisonable...
__________________
Get your motor runnin'
Head out on the highway...
Mr N. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/12/2006, 10h49   #7
Membre habitué
 
Avatar de sami_c
 
Inscription : mai 2002
Messages : 633
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 633
Points : 147
Points : 147
merci
juste une question : avec mon client FTP Filezilla, j'envoi le fichier .htaccess sur le serveur, quand j'actualise, ce dernier n'est plus affiché !!! pourquoi ???
__________________
'...parfois l'informatique peut vous rendre fou...'
sami_c est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/12/2006, 10h53   #8
Expert Confirmé Sénior
 
Avatar de Mr N.
 
Inscription : septembre 2004
Messages : 5 421
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 5 421
Points : 5 835
Points : 5 835
parce que le '.' devant le fichier indique que c'est un fichier caché/système
Tu dois avoir une option dans ton client FTP qui empeche de voir ce type de fichier. Il sufft de la désactiver...

Citation:
To display any hidden files is to select 'View' from the top menu, then select 'Show hidden files'. The screen display will refresh and anything hidden should come into view.

There is a way to get FileZilla to do this automatically - go to the Site Manager and go through the 'Advanced' options to see just what else you can configure.
__________________
Get your motor runnin'
Head out on the highway...
Mr N. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/12/2006, 12h28   #9
Membre habitué
 
Avatar de sami_c
 
Inscription : mai 2002
Messages : 633
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 633
Points : 147
Points : 147
ça marche...MERCI
__________________
'...parfois l'informatique peut vous rendre fou...'
sami_c 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 19h02.


 
 
 
 
Partenaires

Hébergement Web