| 
<?php/*        _         _____  _       _       _
 *   ___ | |_  ___ |   __||_| ___ | | ___ | |_
 *  | . ||   || . ||   __|| || . || || -_||  _|
 *  |  _||_|_||  _||__|   |_||_  ||_||___||_|
 *  |_|       |_|            |___|
 *
 *    Author     :        Lucas Baltes ([email protected])
 *                    $Author: lhb $
 *
 *    Website     :        http://www.thebobo.com/
 *
 *    Date     :        $Date: 2003/03/16 10:08:01 $
 *    Rev      :        $Revision: 1.0 $
 *
 *    Copyright:        2003 - Lucas Baltes
 *  License  :        GPL - http://www.gnu.org/licenses/gpl.html
 *
 *    Purpose     :        Figlet font class
 *
 *  Comments :        phpFiglet is a php class to somewhat recreate the
 *                    functionality provided by the original figlet program
 *                    (http://www.figlet.org/). It does not (yet) support the
 *                    more advanced features like kerning or smushing. It can
 *                    use the same (flf2a) fonts as the original figlet program
 *                    (see their website for more fonts).
 *
 *  Usage    :        $phpFiglet = new phpFiglet();
 *
 *                    if ($phpFiglet->loadFont("fonts/standard.flf")) {
 *                        $phpFiglet->display("Hello World");
 *                    } else {
 *                        trigger_error("Could not load font file");
 *                    }
 *
 */
 namespace MultiCaptcha\Types\Ascii;
 
 
 class PhpFiglet
 {
 
 /*
 *  Internal variables
 */
 
 var $signature;
 var $hardblank;
 var $height;
 var $baseline;
 var $maxLenght;
 var $oldLayout;
 var $commentLines;
 var $printDirection;
 var $fullLayout;
 var $codeTagCount;
 var $fontFile;
 
 
 /*
 *  Contructor
 */
 
 function phpFiglet()
 {
 
 }
 
 
 /*
 *  Load an flf font file. Return true on success, false on error.
 */
 
 function loadfont($fontfile)
 {
 $this->fontFile = file($fontfile);
 if (!$this->fontFile) die("Couldnt open fontfile $fontfile\n");
 
 $hp = explode(" ", $this->fontFile[0]); // get header
 
 $this->signature = substr($hp[0], 0, strlen($hp[0]) -1);
 $this->hardblank = substr($hp[0], strlen($hp[0]) -1, 1);
 $this->height = $hp[1];
 $this->baseline = $hp[2];
 $this->maxLenght = $hp[3];
 $this->oldLayout = $hp[4];
 $this->commentLines = $hp[5] + 1;
 if( isset( $hp[6] ) ){
 $this->printDirection = $hp[6];
 }
 if( isset( $hp[7] ) ){
 $this->fullLayout = $hp[7];
 }
 if( isset( $hp[8] ) ){
 $this->codeTagCount = $hp[8];
 }
 
 unset($hp);
 
 return true;
 if ($this->signature != "flf2a") {
 trigger_error("Unknown font version " . $this->signature . "\n");
 return false;
 } else {
 return true;
 }
 }
 
 
 /*
 *  Get a character as a string, or an array with one line
 *  for each font height.
 */
 
 function getCharacter($character, $asarray = false)
 {
 $asciValue = ord($character);
 $start = $this->commentLines + ($asciValue - 32) * $this->height;
 $data = ($asarray) ? array() : "";
 
 for ($a = 0; $a < $this->height; $a++)
 {
 $tmp = $this->fontFile[$start + $a];
 $tmp = str_replace("@", "", $tmp);
 //$tmp = trim($tmp);
 $tmp = str_replace($this->hardblank, " ", $tmp);
 
 if ($asarray) {
 $data[] = $tmp;
 } else {
 $data .= $tmp;
 }
 }
 
 return $data;
 }
 
 
 /*
 *  Returns a figletized line of characters.
 */
 
 function fetch($line)
 {
 $ret = "";
 
 for ($i = 0; $i < (strlen($line)); $i++)
 {
 $data[] = $this->getCharacter($line[$i], true);
 }
 
 @reset($data);
 
 for ($i = 0; $i < $this->height; $i++)
 {
 while (list($k, $v) = each($data))
 {
 $ret .= preg_replace("/(\n|\r)+/", "", $v[$i]);
 }
 reset($data);
 $ret .= "\n";
 }
 
 return $ret;
 }
 
 
 /*
 *  Display (print) a figletized line of characters.
 */
 
 function display($line)
 {
 print $this->fetch($line);
 }
 
 }
 ?>
 |