Hello,
nur für's Archiv.
Bisher klappt das so ganz gut.
Keiner der Tests hat bisher einen Out-of-Memory gegeben
function image_check_memory($_imageinfo, $memleft = MEMORY_LEFT) ## (X, Y, bits, channels), Rest
{
## fehlende Angaben durch Raten ergänzen
if (!isset($_imageinfo['bits'])) $_imageinfo['bits'] = 8;
if (!isset($_imageinfo['channels']) and $_imageinfo['bits'] == 24) $_imageinfo['channels'] = 1;
if (!isset($_imageinfo['channels'])) $_imageinfo['channels'] = 3;
$memoryNeeded = round(($_imageinfo[0] * $_imageinfo[1] * $_imageinfo['bits'] * $_imageinfo['channels'] / 8 + 65536) * 1.65);
$memoryLimit = intval(ini_get('memory_limit')) * 1048576;
if ((memory_get_usage() + $memoryNeeded) + $memleft > $memoryLimit)
{
error_log('IMAGE_MEMORY usage: '.memory_get_usage().", needed: $memoryNeeded, limit: $memoryLimit\n", 3, '/var/log/web04/php_error_log');
return false;
}
return true;
}
getimagesize() liefert nur ncht immer Werte für bits und channels.
So gut gefällt mir das daher noch nicht.
Wenn man aber einen Stapel mit 300 unterschiedlichen Grafiken abarbeiten will, soll die Schleife nicht mittendrin aussteigen.
Harzliche Grüße vom Berg
<http://bergpost.annerschbarrich.de>
Tom
--
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau
Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)
