Вам лучше всегда генерировать уменьшенные версии изображений при загрузке / создании, а не пытаться предоставлять их через php-скрипты по запросу.Вы можете кэшировать сгенерированные файлы в файловую систему с помощью php, используя некоторый ваш код, но это все же намного медленнее, чем обслуживать их с помощью Apache.
Если вы не можете создавать миниатюры при загрузке / создании, вы можете оптимизировать текущую реализацию, кэшируя уменьшенный миниатюру в файловую систему и обслуживая их для каждого последующего запроса:
<?php
$path_to_thumb_pic = '../icons/default_thumb.png';
if (!file_exists($path_to_thumb_pic)) {
$path_to_profile_pic = '../icons/default.png';
$profile_pic = file_get_contents('icons/default.png');
$small_profile_pic = PhpThumbFactory::create($profile_pic, array(), true);
$small_profile_pic->adaptiveResize(25, 25);
$small_profile_pic->save($path_to_thumb_pic);
}
?>
<img src="<?php echo $path_to_thumb_pic; ?>" width="25" height="25" />