そもそも、メモリーオーバーの原因は、GDがメモリー上に展開するGDイメージ画像が原因。先の投稿で見たGDイメージの構造体から判断するに、このファイルフォーマットのサイズは、縦ピクセル×横ピクセル×RGBAの4チャンネル×1バイト(256階調)で予想できるかなと判断。



サムネイル画像を生成するには
1. 元画像から作られたGDイメージのサイズ
2. サムネイル用に準備したGDイメージのサイズ
の2つを考慮すればいいので、以下の判定式でメモリーオーバーを防ぐことができるでしょう。

$original_widthと$original_heightで元画像の縦幅と横幅を
$thumb_widthと$thumb_heightでサムネイルの縦幅と横幅を定義して

$memorymax = trim(ini_get("memory_limit"));
switch (strtolower ($memorymax[strlen ($memorymax)-1]))
{
case 'g':
$memorymax *= 1024;
case 'm':
$memorymax *= 1024;
case 'k':
$memorymax *= 1024;
}

if ((memory_get_usage() + $original_width*$original_height*4*1 + $thumb_width*$thumb_height*4*1) > $memorymax)
{
return FALSE;
}

というわけで、1年来の課題を解決。