Source for file Image.php
Documentation is available at Image.php
* Text_CAPTCHA_Driver_Image - Text_CAPTCHA driver graphical CAPTCHAs
* Class to create a graphical Turing test
* + refine the obfuscation algorithm :-)
* + learn how to use Image_Text better (or remove dependency)
* @license PHP License, version 3.0
* @author Christian Wenz <wenz@php.net>
* Further options (for Image_Text)
* Initializes the new Text_CAPTCHA_Driver_Image object and creates a GD image
* @param int $width Width of image
* @param int $height Height of image
* @param string $phrase The "secret word" of the CAPTCHA
* @param array $options further options (for Image_Text)
function init($width = 200 , $height = 80 , $phrase = null , $options = null )
$this->_height = $height;
"font_file" => "COUR.TTF"
$this->_options = $options;
if (!isset ($this->_options["font_size"])) {
$this->_options["font_size"] = 24;
if (!isset ($this->_options["font_path"])) {
$this->_options["font_path"] = "./";
if (!isset ($this->_options["font_file"])) {
$this->_options["font_file"] = "COUR.TTF";
return PEAR ::raiseError ("Use numeric CAPTCHA dimensions!");
* Create random CAPTCHA phrase, Image edition (with size check)
* This method creates a random phrase, maximum 8 characters or width / 25, whatever is smaller
$this->_phrase = Text_Password ::create ($len);
* This method creates a CAPTCHA image
function _createCAPTCHA ()
$options["canvas"] = array (
"width" => $this->_width,
"height" => $this->_height
$options["width"] = $this->_width - 20;
$options["height"] = $this->_height - 20;
$options["cx"] = ceil(($this->_width) / 2 + 10 );
$options["cy"] = ceil(($this->_height) / 2 + 10 );
$options["angle"] = rand(0 , 30 ) - 15;
$options["font_size"] = $this->_options["font_size"];
$options["font_path"] = $this->_options["font_path"];
$options["font_file"] = $this->_options["font_file"];
$options["color"] = array ("#FFFFFF", "#000000");
$options["max_lines"] = 1;
$options["mode"] = "auto";
$this->_imt = new Image_Text (
if (PEAR ::isError ($this->_imt->init ())) {
return PEAR ::raiseError ("Error initializing Image_Text (font missing?!)");
$this->_imt->measurize ();
$this->_im = & $this->_imt->getImg ();
$x1 = rand(0 , $this->_width - 1 );
$y1 = rand(0 , round($this->_height / 10 , 0 ));
$y2 = rand(0 , $this->_height - 1 );
imageline($this->_im, $x1, $y1, $x2, $y2, $white);
$x1 = rand(0 , $this->_width - 1 );
$y1 = $this->_height - rand(1 , round($this->_height / 10 , 0 ));
$x2 = $this->_width - rand(1 , round($this->_width / 10 , 0 ));
$y2 = rand(0 , $this->_height - 1 );
imageline($this->_im, $x1, $y1, $x2, $y2, $white);
* Return CAPTCHA as image resource
* This method returns the CAPTCHA as GD2 image resource
* @return im image resource
* This method returns the CAPTCHA as PNG
* This method returns the CAPTCHA as JPEG
Documentation generated on Mon, 11 Mar 2019 13:57:30 -0400 by phpDocumentor 1.4.4. PEAR Logo Copyright © PHP Group 2004.
|