note 60241 added to function.imagecreatefromjpeg
| From: | KarolisTamutiskarolis dot t_AT_gmail dot com at osu1 dot php dot net | Date: | Sat, 31 Dec 2005 01:04:01 +0000 |
| Subject: | note 60241 added to function.imagecreatefromjpeg | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-101023@lists.php.net to get a copy of this message | ||
In addition to yaroukh at gmail dot com comment.
It seems that even a small image can eat up your default memory limit real quick. Config value
'memory_limit' is marked PHP_INI_ALL, so you can change it dynamically using ini_set.
Therefore, we can "allocate memory dynamically", to prevent those memory limit exceeded
errors.
<?php
$imageInfo = getimagesize('PATH/TO/YOUR/IMAGE');
$memoryNeeded = round(($imageInfo[0] * $imageInfo[1] * $imageInfo['bits'] *
$imageInfo['channels'] / 8 + Pow(2, 16)) * 1.65);
if (function_exists('memory_get_usage') && memory_get_usage() + $memoryNeeded >
(integer) ini_get('memory_limit') * pow(1024, 2)) {
ini_set('memory_limit', (integer) ini_get('memory_limit') +
ceil(((memory_get_usage() + $memoryNeeded) - (integer) ini_get('memory_limit') * pow(1024,
2)) / pow(1024, 2)) . 'M');
}
?>
----
Manual Page -- http://www.php.net/manual/en/function.imagecreatefromjpeg.php
Edit -- http://master.php.net/manage/user-notes.php?action=edit+60241
Delete: added to the manual -- http://master.php.net/manage/user-notes.php?action=delete+60241&report=yes&reason=added+to+the+manual
Delete: bad code -- http://master.php.net/manage/user-notes.php?action=delete+60241&report=yes&reason=bad+code
Delete: spam -- http://master.php.net/manage/user-notes.php?action=delete+60241&report=yes&reason=spam
Delete: useless -- http://master.php.net/manage/user-notes.php?action=delete+60241&report=yes&reason=useless
Delete: non-english -- http://master.php.net/manage/user-notes.php?action=delete+60241&report=yes&reason=non-english
Delete: already in docs -- http://master.php.net/manage/user-notes.php?action=delete+60241&report=yes&reason=already+in+docs
Delete: other reasons -- http://master.php.net/manage/user-notes.php?action=delete+60241&report=yes
Reject -- http://master.php.net/manage/user-notes.php?action=reject+60241&report=yes
Search -- http://master.php.net/manage/user-notes.php