<?php
// Капча с выбором похожей КАРТИНКИ

$ab_config['img_captcha_size'] = 100; // размер картинки в пикселях
$ab_config['img_captcha_time'] = 0; // дата обновления кэш файла
$ab_config['img_captcha_list'] = array(); // массив имен файлов картинок

@include(__DIR__.'/../../img/conf.php');

// обновляем конфиг (кэш):
if ($ab_config['time'] - $ab_config['img_captcha_time'] > 86400) {
$ab_config['img_captcha_list'] = array_values(array_map('basename', glob(__DIR__.'/../../img/*.jpg')));
$ab_config['img_captcha_time'] = $ab_config['time'];

file_put_contents(__DIR__.'/../../img/conf.php', "<?php\n" .
    "// autogenerated captcha config\n" .
    '$ab_config[\'img_captcha_size\'] = ' . var_export($ab_config['img_captcha_size'], true) . ";\n" .
    '$ab_config[\'img_captcha_time\'] = ' . var_export($ab_config['img_captcha_time'], true) . ";\n" .
    '$ab_config[\'img_captcha_list\'] = ' . var_export($ab_config['img_captcha_list'], true) . ";\n"
);
}


shuffle($ab_config['img_captcha_list']);

// (правильный ответ):
$color = $ab_config['img_captcha_list'][0]; // оригинал названия картинки

// пароль шифрования:
$tmppassword = hash('sha256', $ab_config['salt'].$ab_config['time'].$ab_config['pass'].$ab_config['ip']);

$buttons = array();
$i = 0;
foreach ($ab_config['img_captcha_list'] as $ab_config['color']) {
$buttons[] = '<img width=\"'.$ab_config['img_captcha_size'].'\" height=\"'.$ab_config['img_captcha_size'].'\" src=\"'.$ab_config['webdir'].'img/'.$ab_config['color'].'\" style=\"cursor: pointer;\" onclick=\"'.$cloud_test_func_name.'(\'post\', data, \''.ab_encrypt($color.'|'.$ab_config['color'], $tmppassword).'\')\" /> ';
$i++;
if ($i > 5) break;
}
shuffle($buttons);
$buttons = '<p>'.implode('', $buttons).'</p>';

$red = rand(10,50);
$green = rand(10,50);
$blue = rand(10,50);
$im = imagecreatefromjpeg(__DIR__.'/../../img/'.$color);
imagefilter($im, IMG_FILTER_COLORIZE, $red, $green, $blue);
//imageflip($im, IMG_FLIP_HORIZONTAL); // отражение по горизонтале
imagegammacorrect($im, 1.0, 1.537); // гамма коррекция
// накладывание рандом точек:
for ($i = 0; $i < 1000; $i++) {
$red = imagecolorallocate($im, rand(1,255), rand(1,255), rand(1,255));
imagesetpixel($im, rand(1,100),rand(1,100), $red);
}
$im = imagerotate($im, rand(-25,25), imageColorAllocateAlpha($im, 0, 0, 0, 127)); // поворот по кругу
ob_start();
imagepng($im);
$image_data1 = ob_get_contents();
imagedestroy($im);
ob_end_clean(); 
unset($im);
echo '
document.getElementById("content").innerHTML = "<img src=\"data:image/png;base64,'.base64_encode($image_data1).'\" /><p>'.abTranslate('If you are human, click on the similar image').' </p>'.$buttons.'";
';
