В своё время реализовал так, только надо добавить картинки и рандомно по номеру их выбирать. Получалось так:
PHP код:
<?php
//Количество символов
define('CHARS', 5);
//Функция генерации произвольной строки
function generationStr()
{
$num = CHARS;
$range = '35';//$range - диапазон алфавита начиная с нуля
$chars = '1234567890aeiouybcdfghjklmnpqrstvwxz';
for($i = 0; $i < $num; $i++)
{
$str .= $chars{rand(0, $range)};
}
return $str;
}
//Открываем сессию
session_start();
//Генерируем капчу
$captcha = generationStr();
//Записываем капчу в сессию
unset($_SESSION['captcha']);
$_SESSION['captcha'] = $captcha;
//Говорим, что этот файл картинка
header('Content-type: image/jpg');
//Открываем изображение
$img = imagecreatefromjpeg('images\noise1.jpg');
//Включаем сглаживание
imageantialias($img, true);
//Генерируем путь до шрифта
$font = 'fonts\verdana.ttf';
//Добавляем текст
$x = 10;
$y = 30;
for($i = 0; $i < CHARS; $i++)
{
//Генерируем цвет
$color = imagecolorallocate($img, rand(50, 200), rand(50, 200), rand(50, 200));
$angle = rand(0, 20);
$size = rand(12, 20);
imagettftext($img, 20, $angle, $x, $y, $color, $font, $_SESSION['captcha'][$i]);
$x += 20;
}
//Отдаём изображение
imagejpeg($img, "", 90);
?>