1<?php 2 3/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */ 4 5/** 6 * Image_Canvas 7 * 8 * Canvas class to handle PNG format. 9 * 10 * PHP versions 4 and 5 11 * 12 * LICENSE: This library is free software; you can redistribute it and/or modify 13 * it under the terms of the GNU Lesser General Public License as published by 14 * the Free Software Foundation; either version 2.1 of the License, or (at your 15 * option) any later version. This library is distributed in the hope that it 16 * will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty 17 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser 18 * General Public License for more details. You should have received a copy of 19 * the GNU Lesser General Public License along with this library; if not, write 20 * to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 21 * 02111-1307 USA 22 * 23 * @category Images 24 * @package Image_Canvas 25 * @author Jesper Veggerby <pear.nosey@veggerby.dk> 26 * @copyright Copyright (C) 2003, 2004 Jesper Veggerby Hansen 27 * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 28 * @version CVS: $Id: PNG.php 287471 2009-08-18 23:12:01Z clockwerx $ 29 * @link http://pear.php.net/package/Image_Canvas 30 */ 31 32/** 33 * Include file Image/Canvas/GD.php 34 */ 35require_once 'Image/Canvas/GD.php'; 36 37/** 38 * PNG Canvas class. 39 * 40 * @category Images 41 * @package Image_Canvas 42 * @author Jesper Veggerby <pear.nosey@veggerby.dk> 43 * @copyright Copyright (C) 2003, 2004 Jesper Veggerby Hansen 44 * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 45 * @version Release: @package_version@ 46 * @link http://pear.php.net/package/Image_Canvas 47 */ 48class Image_Canvas_GD_PNG extends Image_Canvas_GD 49{ 50 51 /** 52 * Create the PNG canvas 53 * 54 * @param array $param Parameter array 55 */ 56 function Image_Canvas_GD_PNG($param) 57 { 58 parent::Image_Canvas_GD($param); 59 60 if ((isset($param['transparent'])) && ($param['transparent']) && 61 ($this->_gd2) 62 ) { 63 if ($param['transparent'] === true) { 64 $transparent = '#123ABD'; 65 } else { 66 $transparent = $param['transparent']; 67 } 68 $color = $this->_color($transparent); 69 $trans = ImageColorTransparent($this->_canvas, $color); 70 71 $this->rectangle( 72 array( 73 'x0' => $this->_left, 74 'y0' => $this->_top, 75 'x1' => $this->_left + $this->_width - 1, 76 'y1' => $this->_top + $this->_height - 1, 77 'fill' => 'opague', 78 'line' => 'transparent' 79 ) 80 ); 81 } else { 82 $this->rectangle( 83 array( 84 'x0' => $this->_left, 85 'y0' => $this->_top, 86 'x1' => $this->_left + $this->_width - 1, 87 'y1' => $this->_top + $this->_height - 1, 88 'fill' => 'white', 89 'line' => 'transparent' 90 ) 91 ); 92 } 93 } 94 95 /** 96 * Output the result of the canvas 97 * 98 * @param array $param Parameter array 99 * @abstract 100 */ 101 function show($param = false) 102 { 103 parent::show($param); 104 header('Content-type: image/png'); 105 header('Content-Disposition: inline; filename = \"'. basename($_SERVER['PHP_SELF'], '.php') . '.png\"'); 106 ImagePNG($this->_canvas); 107 ImageDestroy($this->_canvas); 108 } 109 110 /** 111 * Output the result of the canvas 112 * 113 * @param array $param Parameter array 114 * @abstract 115 */ 116 function save($param = false) 117 { 118 parent::save($param); 119 ImagePNG($this->_canvas, $param['filename']); 120 ImageDestroy($this->_canvas); 121 } 122 123} 124 125?> 126