All pastes #391606 Raw Edit

Untitled

public text v1 · immutable
·published 2007-03-12 06:53 UTC
rendered paste body
<?php
/**
 * Image_Class
 * This is a PHP class to create on-the-fly images
 * This class is designed for creating images, and show them on a website
 *
 * Offical Homepage: http://www.unlimitedxl.nl
 *
 * 
 * Copyright (c) 2007 Remco 'MisterGT' Pander <mistergx@unlimitedxl.nl> <http://www.unlimitedxl.nl>
 * 
 * Full LGPL License: <http://www.gnu.org/licenses/lgpl.txt>
 * 
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 *
 */
 
 /**
 * Image Class
 *
 * @package Image_Class
 * @version 0.1.0
 * @author Remco 'MisterGT' Pander <mistergtx@unlimitedxl.nl> 
 * @access public
 */
class Image_Class
{ 
  /**
     * @var resource
     * @access private
     */
  var $img;
  /**
     * @var resource
     * @access private
     */
  var $new;
  
  /**
     * Creates new Picture from existing file
     *
     * @param var $pic
     * @return void
     * @access public
     */
  function newfrompng($pic)
  {
   if(!function_exists('imagecreatefrompng'))
    {
	die('Check if your GD2 Libary is loaded');
	}
   if(!$this->img = imagecreatefrompng($pic)){
    die('Het maken van de afbeelding is mislukt.');
   }
   $this->new = TRUE;
   $this->init_colors();
  }
  function init_colors()
  {
   $this->colors['red'] = imagecolorallocate($this->img, 255, 0, 0);       //Red
   $this->colors['green'] = imagecolorallocate($this->img, 0, 255, 0);     //Green
   $this->colors['blue'] = imagecolorallocate($this->img, 0, 0, 225);      //Blue
   $this->colors['black'] = imagecolorallocate($this->img, 0, 0, 0);       //Black
   $this->colors['grey'] = imagecolorallocate($this->img, 141, 141, 141);  //Grey
   $this->colors['orange'] = imagecolorallocate($this->img, 255, 125, 0);  //Orange
   $this->colors['brown'] = imagecolorallocate($this->img, 72, 53, 34);    //Brown
   $this->colors['yellow'] = imagecolorallocate($this->img, 255, 255, 0);  //Yellow
   $this->colors['white'] = imagecolorallocate($this->img, 255, 255, 255); //White
  }
  /**
     * Creates new Picture 
     *
     * @param var $x, $y
     * @return void
     * @access public
     */
  function newblank($x, $y)
  {
   if(!function_exists('imagecreatetruecolor'))
    {
     die('Check if your GD2 Libary is loaded');
    }
   if(!$this->img = imagecreatetruecolor($x, $y)){
    die('Het maken van de afbeelding is mislukt.');
   }
   $this->new = TRUE;
   $this->init_colors(); 
   return true;
  }
  /**
     * Define custom colors
     *
     * @param var $r, $g, $b, $name
     * @return void
     * @access public
     */
  function definecolor($r, $g, $b, $name)
  {
   if(!$this->new)
    {
	die('There is no IMG created!');
	}
   $this->colors[$name] = imagecolorallocate($r, $g, $b);
   return true;
  }
  /**
     * Send Headers
     *
     * @access public
     */
  function headers()
  {
   if(!$this->new)
    {
	die('There is no IMG created!');
	}
   @header("Content-type: image/png");   //Output to IMG
   @header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");  
   @header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); //Date created
   @header("Cache-Control: no-store, no-cache, must-revalidate"); 
   @header("Cache-Control: post-check=0, pre-check=0", false); 
   @header("Pragma: no-cache");                          // HTTP/1.0   
  }
    
  /**
     * Fill
     *
     * @access public
     */
  function fill($color, $x, $y)
  {
   if(!$this->new)
    {
	die('There is no IMG created!');
	}
   if(!@imagefill($this->img, $x, $y, $this->colors[$color]))
    {
	die('Error tijdens het vullen van '.$x.' tot '.$y);
	}
  }
  
  /**
     * Create line
     *
     * @access public
     */
  function line($color, $x1, $y1, $x2, $y2)
  {
   if(!$this->new)
    {
	die('There is no IMG created!');
	}
   if(!@imageline($this->img, $x1, $y1, $x2, $y2, $this->colors[$color]))
    {
	die('Fout opgetreden tijdens het maken van een lijn!');
	}
  }
  
  /**
     * Add Text
     *
     * @param var $size, $x, $y, $color, $font, $text, $angle
     * @return void
     * @access public
     */
  function text($size, $x, $y, $color, $font, $text, $angle = NULL)
  {
   if(!$this->new)
    {
	die('There is no IMG created!');
	}
   if($angle == NULL)
   {
   $angle = 0;
   }
   imagettftext($this->img, $size, $angle, $x, $y, $this->colors[$color], $font, $text);
   return true;
  }
  
  /**
     * Print the image
     *
     * @param var $fast
     * @return void
     * @access public
     */
  function printToScreen($fast = TRUE)
  {
   if(!$this->new)
    {
	die('There is no IMG created!');
	}
   @imagepng($this->img);
   if($fast)
    {
    @imagedestroy($this->img);
	}
   unset($this->img);
  }
}
?>