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

📄 transform.php

📁 完美的在线教育系统
💻 PHP
📖 第 1 页 / 共 2 页
字号:
<?php/************************************************************************* Title.........:  Image Transformation Interface** Version.......:  1.0** Author........:  Xiang Wei ZHUO <wei@zhuo.org>** Filename......:  Transform.php** Last changed..:  30 Aug 2003 ** Notes.........:  Orginal is from PEAR                                        Added a few extra,                        - create unique filename in a particular directory,                          used for temp image files.                        - added cropping to GD, NetPBM, ImageMagick**/// +----------------------------------------------------------------------+// | 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>                            |// |          Vincent Oostindie <vincent@sunlight.tmfweb.nl>              |// +----------------------------------------------------------------------+//// $Id: Transform.php 26 2004-03-31 02:35:21Z Wei Zhuo $//// Image Transformation interface///** * The main "Image_Resize" class is a container and base class which * provides the static methods for creating Image objects as well as * some utility functions (maths) common to all parts of Image Resize. * * The object model of DB is as follows (indentation means inheritance): * * Image_Resize The base for each Image implementation.  Provides default * |            implementations (in OO lingo virtual methods) for * |            the actual Image implementations as well as a bunch of * |            maths methods. * | * +-Image_GD   The Image implementation for the PHP GD extension .  Inherits *              Image_Resize *              When calling DB::setup for GD images the object returned is an *              instance of this class. * * @package  Image Resize * @version  1.00 * @author   Peter Bowyer <peter@mapledesign.co.uk> * @since    PHP 4.0 */Class Image_Transform{    /**     * Name of the image file     * @var string     */    var $image = '';    /**     * Type of the image file (eg. jpg, gif png ...)     * @var string     */    var $type = '';    /**     * Original image width in x direction     * @var int     */    var $img_x = '';    /**     * Original image width in y direction     * @var int     */    var $img_y = '';    /**     * New image width in x direction     * @var int     */    var $new_x = '';    /**     * New image width in y direction     * @var int     */    var $new_y = '';    /**     * Path the the library used     * e.g. /usr/local/ImageMagick/bin/ or     * /usr/local/netpbm/     */    var $lib_path = '';    /**     * Flag to warn if image has been resized more than once before displaying     * or saving.     */     var $resized = false;     var $uid = '';     var $lapse_time =900; //15 mins    /**     * Create a new Image_resize object     *     * @param string $driver name of driver class to initialize     *     * @return mixed a newly created Image_Transform object, or a PEAR     * error object on error     *     * @see PEAR::isError()     * @see Image_Transform::setOption()     */    function &factory($driver)    {        if ('' == $driver) {            die("No image library specified... aborting.  You must call ::factory() with one parameter, the library to load.");        }        $this->uid = md5($_SERVER['REMOTE_ADDR']);        include_once "$driver.php";        $classname = "Image_Transform_Driver_{$driver}";        $obj =& new $classname;        return $obj;    }    /**     * Resize the Image in the X and/or Y direction     * If either is 0 it will be scaled proportionally     *     * @access public     *     * @param mixed $new_x (0, number, percentage 10% or 0.1)     * @param mixed $new_y (0, number, percentage 10% or 0.1)     *     * @return mixed none or PEAR_error     */    function resize($new_x = 0, $new_y = 0)    {        // 0 means keep original size        $new_x = (0 == $new_x) ? $this->img_x : $this->_parse_size($new_x, $this->img_x);        $new_y = (0 == $new_y) ? $this->img_y : $this->_parse_size($new_y, $this->img_y);        // Now do the library specific resizing.        return $this->_resize($new_x, $new_y);    } // End resize    /**     * Scale the image to have the max x dimension specified.     *     * @param int $new_x Size to scale X-dimension to     * @return none     */    function scaleMaxX($new_x)    {        $new_y = round(($new_x / $this->img_x) * $this->img_y, 0);        return $this->_resize($new_x, $new_y);    } // End resizeX    /**     * Scale the image to have the max y dimension specified.     *     * @access public     * @param int $new_y Size to scale Y-dimension to     * @return none     */    function scaleMaxY($new_y)    {        $new_x = round(($new_y / $this->img_y) * $this->img_x, 0);        return $this->_resize($new_x, $new_y);    } // End resizeY    /**     * Scale Image to a maximum or percentage     *     * @access public     * @param mixed (number, percentage 10% or 0.1)     * @return mixed none or PEAR_error     */    function scale($size)    {        if ((strlen($size) > 1) && (substr($size,-1) == '%')) {            return $this->scaleByPercentage(substr($size, 0, -1));        } elseif ($size < 1) {            return $this->scaleByFactor($size);        } else {            return $this->scaleByLength($size);        }    } // End scale    /**     * Scales an image to a percentage of its original size.  For example, if     * my image was 640x480 and I called scaleByPercentage(10) then the image     * would be resized to 64x48     *     * @access public     * @param int $size Percentage of original size to scale to     * @return none     */    function scaleByPercentage($size)    {        return $this->scaleByFactor($size / 100);    } // End scaleByPercentage    /**     * Scales an image to a factor of its original size.  For example, if     * my image was 640x480 and I called scaleByFactor(0.5) then the image     * would be resized to 320x240.     *     * @access public     * @param float $size Factor of original size to scale to     * @return none     */    function scaleByFactor($size)    {        $new_x = round($size * $this->img_x, 0);        $new_y = round($size * $this->img_y, 0);        return $this->_resize($new_x, $new_y);    } // End scaleByFactor    /**     * Scales an image so that the longest side has this dimension.     *     * @access public     * @param int $size Max dimension in pixels     * @return none     */    function scaleByLength($size)    {         if ($this->img_x >= $this->img_y) {            $new_x = $size;            $new_y = round(($new_x / $this->img_x) * $this->img_y, 0);        } else {            $new_y = $size;            $new_x = round(($new_y / $this->img_y) * $this->img_x, 0);        }        return $this->_resize($new_x, $new_y);    } // End scaleByLength    /**     *     * @access public     * @return void     */    function _get_image_details($image)    {        //echo $image;        $data = @GetImageSize($image);        #1 = GIF, 2 = JPG, 3 = PNG, 4 = SWF, 5 = PSD, 6 = BMP, 7 = TIFF(intel byte order), 8 = TIFF(motorola byte order,        # 9 = JPC, 10 = JP2, 11 = JPX, 12 = JB2, 13 = SWC        if (is_array($data)){            switch($data[2]){                case 1:                    $type = 'gif';                    break;                case 2:                    $type = 'jpeg';                    break;                case 3:                    $type = 'png';                    break;                case 4:                    $type = 'swf';                    break;                case 5:                    $type = 'psd';                case 6:                    $type = 'bmp';                case 7:                case 8:                    $type = 'tiff';                default:                    echo("We do not recognize this image format");

⌨️ 快捷键说明

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