日期:2011-08-01  浏览次数:20646 次

<?php
class ThumbHandler {
        var $dst_img; // 目标文件
        var $h_src; // 图片资源句柄
        var $h_dst; // 新图句柄
        var $h_mask; // 水印句柄
        var $img_create_quality = 100; // 图片生成质量
        var $img_display_quality = 80; // 图片显示质量,默认为75
        var $img_scale = 0; // 图片缩放比例
        var $src_w = 0; // 原图宽度
        var $src_h = 0; // 原图高度
        var $dst_w = 0; // 新图总宽度
        var $dst_h = 0; // 新图总高度
        var $fill_w; // 填充图形宽
        var $fill_h; // 填充图形高
        var $copy_w; // 拷贝图形宽
        var $copy_h; // 拷贝图形高
        var $src_x = 0; // 原图绘制起始横坐标
        var $src_y = 0; // 原图绘制起始纵坐标
        var $start_x; // 新图绘制起始横坐标
        var $start_y; // 新图绘制起始纵坐标
        var $mask_word; // 水印文字
        var $mask_img; // 水印图片
        var $mask_pos_x = 0; // 水印横坐标
        var $mask_pos_y = 0; // 水印纵坐标
        var $mask_offset_x = 5; // 水印横向偏移
        var $mask_offset_y = 5; // 水印纵向偏移
        var $font_w; // 水印字体宽
        var $font_h; // 水印字体高
        var $mask_w; // 水印宽
        var $mask_h; // 水印高
        var $mask_font_color = "#ffffff"; // 水印文字颜色
        var $mask_font = 2; // 水印字体
        var $font_size; // 尺寸
        var $mask_position = 0; // 水印位置
        var $mask_img_pct = 50; // 图片合并程度,值越大,合并程序越低
        var $mask_txt_pct = 50; // 文字合并程度,值越小,合并程序越低
        var $img_border_size = 0; // 图片边框尺寸
        var $img_border_color; // 图片边框颜色
        var $_flip_x = 0; // 水平翻转次数
        var $_flip_y = 0; // 垂直翻转次数
       

        var $cut_type = 0; // 剪切类型
       

        var $img_type; // 文件类型
       

        // 文件类型定义,并指出了输出图片的函数
        var $all_type = array ("jpg" => array ("output" => "imagejpeg" ), "gif" => array ("output" => "imagegif" ), "png" => array ("output" => "imagepng" ), "wbmp" => array ("output" => "image2wbmp" ), "jpeg" => array ("output" => "imagejpeg" ) );
        
        /**
         * 构造函数
         */
        function ThumbHandler() {
                $this->mask_font_color = "#ffffff";
                $this->font = 2;
                $this->font_size = 12;
        }
        
        /**
         * 取得图片的宽
         */
        function getImgWidth($src) {
                return imagesx ( $src );
        }
        
        /**
         * 取得图片的高
         */
        function getImgHeight($src) {
                return imagesy ( $src );
        }
        
        /**
         * 设置图片生成路径
         *
         * @param    string    $src_img   图片生成路径
         */
        function setSrcImg($src_img, $img_type = null) {
                echo $img_type;
                if (! file_exists ( $src_img )) {
                        die ( "图片不存在" );
                }
                
                if (! empty ( $img_type )) {
                        $this->img_type = $img_type;
                } else {
                        $this->img_type = $this->_getImgType ( $src_img );
                }
                
                $this->_checkValid ( $this->img_type );
                
                // file_get_contents函数要求php版本>4.3.0
                $src = '';
                if (function_exists ( "file_get_contents" )) {
                        $src = file_get_contents ( $src_img );
                } else {
                        $handle = fopen ( $src_img, "r" );
                        while ( ! feof ( $handle ) ) {
                                $src .= fgets ( $fd, 4096 );
                        }
                        fclose ( $handle );
                }
                if (empty ( $src )) {
                        die ( "图片源为空" );
                }
                $this->h_src = @ImageCreateFromString ( $src );
                $this->src_w = $this->getImgWidth ( $this->h_src );
                $this-&g