Использование php и gd — что лучше для производительности или времени между:
Вывод изображения
header('Content-Type: image/png');
imagepng($image);
Или сохранение изображения на сервере (на локальном сервере или Amazon s3)
imagepng($image, 'new_image.png');
Что ж, не будет никакой разницы во времени, необходимом для генерации данных изображения, потому что оно будет одинаковым в обоих случаях.
Однако, когда вы сохраняете образ на локальный диск, операция, вероятно, завершится намного быстрее, чем когда данные должны быть отправлены в браузер клиента где-нибудь в мире.
Однако смысл PHP в том, чтобы представить что-то в браузере, поэтому я думаю, что вы все равно покажете сохраненный файл, сводя на нет все преимущества в скорости, которую вы получили от хранения изображения.
Итак, если вы хотите, чтобы изображение отображалось в обоих случаях, я думаю, было бы лучше вывести изображение непосредственно из сценария PHP.
С другой стороны, если вы используете изображение более одного раза, вы должны сохранить его и использовать сохраненную версию, потому что для создания самого изображения в PHP требуется время.
Если вы хотите сгенерировать один раз и использовать много раз, вы можете использовать этот фрагмент кода PHP:
<?php
// this is where it is stored
$filename = 'my_image.png';
// test if file exists
if (!file_exists($filename))
{
// if does not exist, make it
<... your code for making the image ...>
// store to disk
imagepng($image,$filename);
// image is not needed anymore
imagedestroy($image);
}
// header
header('Content-Type: image/png');
// get file from the disk
readfile($filename);
?>
Просто удалите образ с диска, если вы изменили его и хотите восстановить его. Это очень простой пример, вы можете опираться на него в зависимости от ваших потребностей.
Других решений пока нет …