Tom: Thumbnail-Problem

Beitrag lesen

Hello,

ich ahbe mich damit schon mal länger auseinandergesetzt.
Das ist zwar eher empirisch entstanden, denn exakte und verbriefte Angaben konnte ich bisher nicht finden für die Bildtypen.

http://forum.de.selfhtml.org/archiv/2008/3/t168961/#m1102978

#---------------------------------------------------
function image_check_memory($_imageinfo, $memleft = MEMORY_LEFT)  ## X, Y, bits, channels
{
   ## 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;
}
#---------------------------------------------------

und eine weitere Funktion:

#---------------------------------------------------
function get_memory_limit()
{
    $memory_limit_str = ini_get('memory_limit');
    $memval = intval($memory_limit_str);

if ($memval == -1) return MAX_MEMORY;

if (stripos($memory_limit_str, 'K'))
    {
        return $memval * 1024;
    }
    elseif(stripos($memory_limit_str, 'M'))
    {
        return $memval * 1024 * 1024;
    }
    elseif(stripos($memory_limit_str, 'G'))
    {
        return $memval * 1024 * 1024 * 1024;
    }

return $memval;
}
#--------------------------------------------------

Liebe Grüße aus Syburg bei Dortmund

Tom vom Berg

--
Nur selber lernen macht schlau
http://bergpost.annerschbarrich.de