Размер файла: 1.8Kb
<?php
session_start();
/* Создаём картинку */
$width=50;
$height=20;
$im=imagecreatetruecolor($width, $height);
/* Заполним любым более-менее цветным фоном */
imagefill($im, 0, 0, imagecolorallocate($im, 255, 255, 255));
/* Количество цифр */
$limit=4;
/* Начальная позиция текста */
$start_pos_x=0;
/* Строка */
$string=NULL;
for($i=0; $i<$limit; $i++)
{
/* Позиция по координате y */
$start_pos_y=2;
/* Позиция по координате x */
$start_pos_x+=8;
/* Записываем в строку */
$string.=rand(1, 9);
/* Рисуем на рисунке */
imagestring($im, rand(4, 7), $start_pos_x, $start_pos_y, $string[$i],
imagecolorallocate($im, rand(90, 150), rand(90, 150), rand(90, 150)));
}
/* Изменяем каждый пиксел */
for($j=0; $j<$width; $j++) for($k=0; $k<$height; $k++)
{
/* Берем цвет каждого пиксела */
$take=imagecolorat($im, $j, $k);
$take=imagecolorsforindex($im, $take);
$rgb[0]=$take['red'];
$rgb[1]=$take['green'];
$rgb[2]=$take['blue'];
/* Смотрим, как его изменить */
foreach($rgb as $key => $value)
{
$rand_do=rand(1, 0);
$rand_coef=rand(5, 60);
if($rand_do)
{
/* Если добавить */
$add=$value+$rand_coef;
if($add>255) $add=255;
$rgb[$key]=$add;
}
else
{
/* Если отнять */
$minus=$value-$rand_coef;
if($minus<0) $minus=0;
$rgb[$key]=$minus;
}
}
}
/* Заносим текст в сессию */
$_SESSION['code'] = $string;
/* Выводим картинку в броузер */
header('Content-type: image/png');
imagepng($im);
/* Очищаем буфер */
imagedestroy($im);
?>