频道栏目
首页 > 资讯 > 图像编程 > 正文

PHP生成略缩图类类

16-01-07        来源:[db:作者]  
收藏   我要投稿
<?PHP
类 ThumbnailException 延伸 异常
{
    公共 函数 __construct($消息 = null,则$代码 = 0)
    {
        父:: __construct($消息,$代码);
        error_log中('错误' 。$这个- > GETFILE()。'行' 。$这个- > getLine的()。“错误:” 这- >的GetMessage());  
    } 
}
类 ThumbnailFileException:扩展 ThumbnailException {}
类 ThumbailNotSupportedException 延长 ThumbnailException的{}
      
类 缩略图
{
    私人 $ maxWidth ;         
    私人 $的maxHeight ;         / /略缩图象最大高度
    私人 规模;             / /是否按比例缩小
    私人 膨胀;           / /如何处理太小的图片(是否放大他们以填充略缩图)
    私人 类型;             / /能处理的图片类型
    私人 imgLoaders / /保存加载图象的函数名称
    私人 imgCreators ;      
    私人 来源;            / /源图象
    私人 $ sourceWidth ;      
    私人 sourceHeight美元;     
    私人 $ sourceMine ;       
    私人 拇指;             / /略缩图象
    私人 $ thumbWidth ;       
    私人 thumbHeight美元;      
          
    / ************************************************* *************************************************
    函数名称:__construct构造函数
    功能:用于初始化类的变量
    ************************************************** ****************** /
    公共 函数 __construct($ maxWidth ,maxHeight美元,规模 =真实,膨胀 =真)
    {
        $ - > maxHeight = $ maxHeight ;          
        $ - > maxWidth = $ maxWidth ;
        - >规模= $规模;
        - >膨胀= $膨胀;
        - >类型= 阵列(“image / jpeg文件' ,'图像/ PNG ,图像/ GIF' );      / /定义能处理的类型
        - > imgLoaders = 阵列(                  / /定义每种类型对应的加载函数
            'image / jpeg文件' => 'imagecreatefromjpeg'
            “图像/ PNG' => imagecreatefrompng“' ,
            “图像/ GIF' => imagecreatefromgif“' ,
        );
        - > imgCreators = 阵列(                 / /定义每种类型对应的处理函数
            'image / jpeg文件' => 'imagejpeg'
            “图像/ PNG' => imagepng“' ,
            “图像/ GIF' => imagegif“' ,
        );
    }
          
    / ************************************************* *************************************************
    函数名称:的LoadFile
    功能:加载本地文件
    ************************************************** ****************** /
    公共 功能 的LoadFile($图像)
    {
        ($变暗 = @ 和getimagesize (图片))         / /获得图片信息并判断
        {
            了抛出 新 ThumbnailFileException('无法找到图像:$图像)  / /抛出错误
        }
        (in_array($变暗[ '哑剧' ],$这个- >“类型”))
        {
            $装载机             = $ - > imgLoaders [ $变暗[ '哑剧' ];            
            - >源= $装载机(图像); / /存储加载好了的图片--- imagecratefrom *
            - > sourceWidth = $变暗[0];
            - > sourceHeight = $变暗[1];
            $ - > sourceMine = $变暗[ '哑剧' ];
            $ - > initThumb()                     / /调用生成略缩图函数               
            返回 真;
        }
        其他
        {
            抛出 新 ThumbailNotSupportedException( “ 图像的MIME类型。$变暗[ '哑剧' 。'不suppord' );  / /抛出错误
        }
    }
          
    / ************************************************* *************************************************
    函数名称的loaddata
    功能:加载数据库里面的文件
    ************************************************** ****************** /
    公共 函数 调用loadData($形象,$哑剧)
    {
        如果(in_array($哑剧,$这个- >“类型”))
        {
            如果($ - >源= imagecreatefromstring(图片))                / /从数据库里面加载图片
            {                 
                - > sourceWidth = imagesx($这个- >源);                / /获得源图片的宽度
                - > sourceHeight = imagesy($这个- >“源”);             / /获得源图片的高度
                - > sourceMine = $哑剧;       / /获得源图片的类型
                $ - > initThumb()                 / /调用生成略缩图函数               
                返回 真;
            }
            其他
            {
                抛出 新 ThumbnailFileException( “ 无法加载图像从字符串' );  / /抛出错误信息
            }
        }
        其他
        {
            抛出 新的 ThumbailNotSupportedException(不suppord' );  
        }
    } 
      
    / ************************************************* *************************************************
    函数名称:buildThumb
    功能
    ************************************************** ****************** /                                       
    公共的 功能 buildThumb($文件 =空)
    {
        创作者 = $ - > imgCreators [ $ - > sourceMine];
        如果(isset(的文件))
        {
            返回 的创造者($这个- >拇指,$文件);    / /保存略缩图
        } 
        其他
        {
            返回 的创造者($这个- >“拇指”);         
        }
    }
          
    公共 功能 getMine()
    {
        返回 $此- > sourceMine;  
    }
              
    公共 功能 getThumbWidth()
    {
        返回 $此- > thumbWidth;  
    }
          
    公共 功能 getThumbHeight()
    {
        在返回 $这个- > thumbHeight; 
    } 
      
    / ************************************************* *************************************************
    函数名称:initThumb
    功能:为类处理缩放功能
    ************************************************** ****************** /       
    私人的 功能 initThumb()
    {
        如果($这个- >规模)                            / /判断是否按比例缩放
        {
            如果($ - > sourceWidth> $ - > sourceHeight)
            {
                - > thumbWidth = $ - > maxWidth;
                $ - > thumbHeight 地板(
                    - > sourceHeight *($这个- > maxWidth / $此- > sourceWidth)
                );
            }
            其他 ($ - > sourceWidth < $ - > sourceHeight)
            {
                $这个- > thumbHeight = $ - > maxHeight;
                $ - > thumbWidth 地板(
                    $ - > sourceWidth *($ - > maxHeight / $ - > sourceHeight)
                );                    
            }
            其他
            {
                - > thumbWidth = $ - > maxWidth;
                $这个- > thumbHeight = $ - > maxHeight;              
            } 
        }
        其他
        {
            - > thumbWidth = $ - > maxWidth;
            $这个- > thumbHeight = $ - > maxHeight;
        }
              
        - >拇指= imagecreatetruecolor($ - > thumbWidth,$ - > thumbHeight)           / /创建空白略缩图
        如果($ - > sourceWidth <= $ - > maxWidth && $ - > sourceHeight <= $ - >的maxHeight && $这个- >充气==假)
        {
            - >拇指= $ - >源;
        }
        其他
        {
                imagecopyresampled(- >拇指,$此- >源,0,0,0,0,               / /图片剪贴到略缩图?
                $ - > thumbWidth,
                $ - > thumbHeight,
                $ - > sourceWidth,
                - > sourceHeight
                );
        }
              
    }
          
}
      
?>
相关TAG标签
上一篇:php的扩展和嵌入--php内部变量
下一篇:PHP 页面跳转到另一个页面的几种方法分享
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站