Ветеран
Сообщения: 823
Благодарности: 53
|
Профиль
|
Сайт
|
Отправить PM
| Цитировать
Исправил, добавил комментерии.
Sham, уделите пожалуйста минутку и прочтите комментарии, я правильно формулирую текст, комментарии?
PHP код: 
<?php
class de_captcha {
// Объявляем свойства класса
public $captcha;
public $bg;
public $size;
public $color;
public $font;
// Конструктор класса de_captcha
function __construct($captcha, $bg, $size, $color, $font) {
$this->captcha = $captcha;
$this->bg = $bg;
$this->size = $size;
$this->color = $color;
$this->font = $font;
}
// Метод, который создает изображение
function generate_image() {
$im = ImageCreateFromJPEG ($this->bg);
// Вычленяем из свойства color RGB
$color = explode(",", $this->color);
$color = imagecolorallocate($im, trim($color[0]), trim($color[1]), trim($color[2]));
// Определяем размер текстового блока. Ширину и высоту.
$font_size = imagettfbbox ($this->size , 0 , $this->font , $this->captcha);
$height = abs($font_size[1]) + abs($font_size[7]);
$width = abs($font_size[0]) + abs($font_size[2]);
// Определяем размер всей каптчи, по заданому фону.
$imgwidth = imagesx($im);
$imgheight = imagesy($im);
// Координаты XY, в диапазоне которых будет появляться текстовый элемент
$x1 = 3; $x2 = $imgwidth-$width-2;
$y1 = $height; $y2 = $imgheight-2;
$x = rand($x1,$x2);
$y = rand($y1,$y2);
// Накладываем текстовый блок на фон
imagettftext($im, $this->size, 0, $x, $y, $color, $this->font, $this->captcha);
// Выводим изображение в выходной поток браузера
imagejpeg($im, NULL, 100);
// Освобождает память, занятую изображением
imagedestroy($im);
}
}
?>
PHP код: 
<?php
header("Content-type: image/jpeg");
session_start();
// Подключение файл класса
include '../lib/class.captcha.php';
$_SESSION['captcha'] = rand (100, 999);
// Создание объекта
$a = new de_captcha($_SESSION['captcha'], "captcha/captcha.jpg", 12, "83,115,174", "captcha/advertmf.ttf");
// Подключаем метод
$a->generate_image();
?>
|
-------
Мой блог Web Development
Отправлено: 23:29, 10-02-2010
| #11
|