Я использую GD2 и функции изображения, чтобы взять строку, а затем преобразовать ее в изображение, используя разные шрифты разных размеров. Функция, которую я использую, приведена ниже.
В настоящее время это довольно быстро, но недостаточно быстро. Функция вызывается примерно 20 раз на пользователя, и генерируемые изображения всегда новые (разные), поэтому кэширование не поможет!
Я надеялся получить некоторые идеи о том, как сделать эту функцию быстрее. Может быть, предоставить больше оперативной памяти для запуска сценария? Что-нибудь еще, что является специфическим для этой функции PHP?
Что-нибудь еще, что я могу сделать, чтобы настроить производительность этой функции?
function generate_image($save_path, $text, $font_path, $font_size){
$font = $font_path;
/*
* I have simplifed the line below, its actually a function that works out the size of the box
* that is need for each image as the image size is different based on font type, font size etc
*/
$measure = array('width' => 300, 'height'=> 120);
if($measure['width'] > 900){ $measure['width'] = 900; }
$im = imagecreatetruecolor($measure['width'], $measure['height']);
$white = imagecolorallocate($im, 255, 255, 255);
$black = imagecolorallocate($im, 0, 0, 0);
imagefilledrectangle($im, 0, 0, $measure['width'], $measure['height'], $white);
imagettftext($im, $font_size, 0, $measure['left'], $measure['top'], $black, $font, ' '.$text);
if(imagepng($im, $save_path)){
$status = true;
}else{
$status = false;
}
imagedestroy($im);
return $status;
}
Спасибо всем за помощь