papilio

Записи с меткой «GD»

Скорость создания PNG в PHP средствами GD

Меня сейчас очень интересует, стоит ли работать с изображениями в PHP. Сомнения вызывает не возможности работы с библиотекой GD, а скорость создания PNG-изображений.

Для этого я создал небольшой PHP-скрипт, который генерирует случайный массив чисел с координатами для шестиугольника. А этот шестиугольник рисуется на изображении размером 250×250 px, которое сохраняется в файл. Скрипт работает в течение 10 секунд. Несколько раз запуская этот скрипт, который генерирует сотни изображений, я могу получить среднюю производительность (изображений в секунду).

Сам скрипт:

// current time
$time = time();
 
// create dir
mkdir ('test/' . $time, 0777);
 
// min and max values
$min = 0;
$max = 250;
 
// i
$i = 0;
 
while (time() < $time + 10) {
	// set up array of points for polygon
	$values = array(
            rand($min,$max),  rand($min,$max),  // Point 1 (x, y)
            rand($min,$max),  rand($min,$max), // Point 2 (x, y)
            rand($min,$max),  rand($min,$max),  // Point 3 (x, y)
            rand($min,$max),  rand($min,$max),  // Point 4 (x, y)
            rand($min,$max),  rand($min,$max),  // Point 5 (x, y)
            rand($min,$max),  rand($min,$max)   // Point 6 (x, y)
            );
 
	// create image
	$image = imagecreatetruecolor(250, 250);
 
	// some colors
	$bg   = imagecolorallocate($image, 200, 200, 200);
	$blue = imagecolorallocate($image, 0, 0, 255);
 
	// draw a polygon
	imagefilledpolygon($image, $values, 6, $blue);
 
	// save image
	imagepng($image, 'test/' . $time . '/' . $i . '.png');
	imagedestroy($image);
	$i++;
}

Изображения получаются примерно такими:

PNG-изображение

Итак, результаты:

  • 48 изображений в секунду на моём ноутбуке
  • 70 изображений в секунду на виртуальном хостинге

Результаты вполне нормальные :-)

Метки: , , , , ,