⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gd.php

📁 完美的在线教育系统
💻 PHP
📖 第 1 页 / 共 2 页
字号:
<?php/************************************************************************* Title.........:  GD Driver** Version.......:  1.0** Author........:  Xiang Wei ZHUO <wei@zhuo.org>** Filename......:  GD.php** Last changed..:  30 Aug 2003 ** Notes.........:  Orginal is from PEAR**/// +----------------------------------------------------------------------+// | PHP Version 4                                                        |// +----------------------------------------------------------------------+// | Copyright (c) 1997-2002 The PHP Group                                |// +----------------------------------------------------------------------+// | This source file is subject to version 2.02 of the PHP license,      |// | that is bundled with this package in the file LICENSE, and is        |// | available at through the world-wide-web at                           |// | http://www.php.net/license/2_02.txt.                                 |// | If you did not receive a copy of the PHP license and are unable to   |// | obtain it through the world-wide-web, please send a note to          |// | license@php.net so we can mail you a copy immediately.               |// +----------------------------------------------------------------------+// | Authors: Peter Bowyer <peter@mapledesign.co.uk>                      |// |          Alan Knowles <alan@akbkhome.com>                            |// +----------------------------------------------------------------------+////    Usage ://    $img    = new Image_Transform_GD();//    $angle  = -78;//    $img->load('magick.png');////    if($img->rotate($angle,array('autoresize'=>true,'color_mask'=>array(255,0,0)))){//        $img->addText(array('text'=>"Rotation $angle",'x'=>0,'y'=>100,'font'=>'/usr/share/fonts/default/TrueType/cogb____.ttf'));//        $img->display();//    } else {//        echo "Error";//    }////// $Id: GD.php 26 2004-03-31 02:35:21Z Wei Zhuo $//// Image Transformation interface using the GD library//require_once "Transform.php";Class Image_Transform_Driver_GD extends Image_Transform{    /**     * Holds the image file for manipulation     */    var $imageHandle = '';    /**     * Holds the original image file     */    var $old_image = '';    /**     * Check settings     *     * @return mixed true or  or a PEAR error object on error     *     * @see PEAR::isError()     */    function Image_Transform_GD()    {        return;    } // End function Image    /**     * Load image     *     * @param string filename     *     * @return mixed none or a PEAR error object on error     * @see PEAR::isError()     */    function load($image)    {        $this->uid = md5($_SERVER['REMOTE_ADDR']);        $this->image = $image;        $this->_get_image_details($image);        $functionName = 'ImageCreateFrom' . $this->type;		if(function_exists($functionName))		{			$this->imageHandle = $functionName($this->image);		}    } // End load    /**     * addText     *     * @param   array   options     Array contains options     *                              array(     *                                  'text'  The string to draw     *                                  'x'     Horizontal position     *                                  'y'     Vertical Position     *                                  'Color' Font color     *                                  'font'  Font to be used     *                                  'size'  Size of the fonts in pixel     *                                  'resize_first'  Tell if the image has to be resized     *                                                  before drawing the text     *                              )     *     * @return none     * @see PEAR::isError()     */    function addText($params)    {        $default_params = array(                                'text' => 'This is Text',                                'x' => 10,                                'y' => 20,                                'color' => array(255,0,0),                                'font' => 'Arial.ttf',                                'size' => '12',                                'angle' => 0,                                'resize_first' => false // Carry out the scaling of the image before annotation?  Not used for GD                                );        $params = array_merge($default_params, $params);        extract($params);        if( !is_array($color) ){            if ($color[0]=='#'){                $this->colorhex2colorarray( $color );            } else {                include_once('Image/Transform/Driver/ColorsDefs.php');                $color = isset($colornames[$color])?$colornames[$color]:false;            }        }        $c = imagecolorresolve ($this->imageHandle, $color[0], $color[1], $color[2]);        if ('ttf' == substr($font, -3)) {            ImageTTFText($this->imageHandle, $size, $angle, $x, $y, $c, $font, $text);        } else {            ImagePSText($this->imageHandle, $size, $angle, $x, $y, $c, $font, $text);        }        return true;    } // End addText    /**     * Rotate image by the given angle     * Uses a fast rotation algorythm for custom angles     * or lines copy for multiple of 90 degrees     *     * @param int       $angle      Rotation angle     * @param array     $options    array(  'autoresize'=>true|false,     *                                      'color_mask'=>array(r,g,b), named color or #rrggbb     *                                   )     * @author Pierre-Alain Joye     * @return mixed none or a PEAR error object on error     * @see PEAR::isError()     */    function rotate($angle, $options=null)    {        if(function_exists('imagerotate') && false) {            $white = imagecolorallocate ($this->imageHandle, 255, 255, 255);			$this->imageHandle = imagerotate($this->imageHandle, $angle, $white);            return true;        }        if ( $options==null ){            $autoresize = true;            $color_mask = array(255,255,0);        } else {            extract( $options );        }        while ($angle <= -45) {            $angle  += 360;        }        while ($angle > 270) {            $angle  -= 360;        }        $t      = deg2rad($angle);        if( !is_array($color_mask) ){            if ($color[0]=='#'){                $this->colorhex2colorarray( $color_mask );            } else {                include_once('Image/Transform/Driver/ColorDefs.php');                $color = isset($colornames[$color_mask])?$colornames[$color_mask]:false;            }        }        // Do not round it, too much lost of quality        $cosT   = cos($t);        $sinT   = sin($t);        $img    =& $this->imageHandle;        $width  = $max_x  = $this->img_x;        $height = $max_y  = $this->img_y;        $min_y  = 0;        $min_x  = 0;        $x1     = round($max_x/2,0);        $y1     = round($max_y/2,0);        if ( $autoresize ){            $t      = abs($t);            $a      = round($angle,0);            switch((int)($angle)){                case 0:                        $width2     = $width;                        $height2    = $height;                    break;                case 90:                        $width2     = $height;                        $height2    = $width;                    break;                case 180:                        $width2     = $width;                        $height2    = $height;                    break;                case 270:                        $width2     = $height;                        $height2    = $width;                    break;                default:                    $width2     = (int)(abs(sin($t) * $height + cos($t) * $width));                    $height2    = (int)(abs(cos($t) * $height+sin($t) * $width));            }            $width2     -= $width2%2;            $height2    -= $height2%2;            $d_width    = abs($width - $width2);            $d_height   = abs($height - $height2);            $x_offset   = $d_width/2;            $y_offset   = $d_height/2;            $min_x2     = -abs($x_offset);            $min_y2     = -abs($y_offset);            $max_x2     = $width2;            $max_y2     = $height2;        }        if(function_exists('ImageCreateTrueColor')){            $img2 =ImageCreateTrueColor($width2,$height2);        } else {            $img2 =ImageCreate($width2,$height2);        }	        if ( !is_resource($img2) ){            return false;/*PEAR::raiseError('Cannot create buffer for the rotataion.',                                null, PEAR_ERROR_TRIGGER, E_USER_NOTICE);*/        }        $this->img_x = $width2;        $this->img_y = $height2;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -