2010-02-08 7 views

Répondre

1

D'après ce que je peux dire dans la documentation PHP/GD, cette fonction crée une image RVB 24 bits avec le noir comme la couleur par défaut. La largeur et la hauteur qu'il prend comme arguments sont ints pour les dimensions en pixels. Par conséquent, pour calculer la taille, vous pouvez les multiplier comme suit pour déterminer si l'image brute (avant compression) est à blâmer:

1536 * 1962 = 3,013,632 pixels 
3,013,632 * 24 = 72,327,168 bits 
72,327,168/8 = 9,040,896 bytes 

1024 * 768 = 786,432 pixels 
786,432 * 24 = 18,874,368 bits 
18,874,368/8 = 2,359,296 bytes 

Il me semble inhabituel que cette fonction causerait des problèmes à une taille de 1,1 Mo, mais Peut-être que vous faites référence à une image compressée comme un jpg, où la taille brute réelle pourrait être beaucoup, beaucoup plus grande. (Comme vous pouvez le voir une "petite" image de 1024x768 est encore bien au-dessus de 1,1 MB brut.)

+1

Cela m'a donné le pourboire dont j'avais besoin. J'ai juste augmenté la limite de mémoire de php à 64mgs et le processus accompli. Merci à vous deux – Brick

1

La fonction renvoie une erreur si vous essayez de créer une image trop grande. Supprimez simplement l'erreur et manipulez-la vous-même. Par exemple,

$img = @imagecreatetruecolor(100000, 100000); 
if ($img === false) 
{ 
    // Handle error 
} 
+1

Merci Stephen mais comme j'avais un problème de mémoire cela n'attraperait pas l'erreur. – Brick

Questions connexes