建站软件 优化软件 编程软件 网页辅助 站群程序 网站程序 图像处理 资源教程 字体下载 推荐软件


您的位置:首页 > PHP学习 > 怎么PHP生成缩略图

怎么PHP生成缩略图

时间:2015-01-29 15:40:46  来源:免费模板网 作者:风雪 阅读次数 tags怎么PHP生成缩略图

PHP代码

有时候长传的图片太大,或者格式不对那么这时候就需要处理一下上传的数据,下面给出一个图片处理类供大家参考

< ?php

/**

* 功能:生成缩略图

* 作者:phpox

* 日期:Thu May 17 09:57:05 CST 2007

*/

class CreatMiniature

{

    //公共变量

    var $srcFile = ""; //原图

    var $echoType; //输出图片类型,link--不保存为文件;file--保存为文件

    var $im = ""; //临时变量

    var $srcW = ""; //原图宽

    var $srcH = ""; //原图高

    //设置变量及初始化

    function SetVar($srcFile, $echoType)

    {

        if (!file_exists($srcFile)) {

            echo '源图片文件不存在!';

            exit();

        }

        $this - >srcFile = $srcFile;

        $this - >echoType = $echoType;

        $info = "";

        $data = GetImageSize($this - >srcFile, $info);

        switch ($data[2])

        {

        case 1:

            if (!function_exists("imagecreatefromgif")) {

                echo "你的GD库不能使用GIF格式的图片,请使用Jpeg或PNG格式!<a href='javascript:go(-1);'>返回</a>";

                exit();

            }

            $this - >im = ImageCreateFromGIF($this - >srcFile);

            break;

        case 2:

            if (!function_exists("imagecreatefromjpeg")) {

                echo "你的GD库不能使用jpeg格式的图片,请使用其它格式的图片!<a href='javascript:go(-1);'>返回</a>";

                exit();

            }

            $this - >im = ImageCreateFromJpeg($this - >srcFile);

            break;

        case 3:

            $this - >im = ImageCreateFromPNG($this - >srcFile);

            break;

        }

        $this - >srcW = ImageSX($this - >im);

        $this - >srcH = ImageSY($this - >im);

    }

    //生成扭曲型缩图

    function Distortion($toFile, $toW, $toH)

    {

        $cImg = $this - >CreatImage($this - >im, $toW, $toH, 0, 0, 0, 0, $this - >srcW, $this - >srcH);

        return $this - >EchoImage($cImg, $toFile);

        ImageDestroy($cImg);

    }

    //生成按比例缩放的缩图

    function Prorate($toFile, $toW, $toH)

    {

        $toWH = $toW / $toH;

        $srcWH = $this - >srcW / $this - >srcH;

        if ($toWH <= $srcWH)

        {

            $ftoW = $toW;

            $ftoH = $ftoW * ($this - >srcH / $this - >srcW);

        }

        else

        {

            $ftoH = $toH;

            $ftoW = $ftoH * ($this - >srcW / $this - >srcH);

        }

        if ($this - >srcW > $toW || $this - >srcH > $toH)

        {

            $cImg = $this - >CreatImage($this - >im, $ftoW, $ftoH, 0, 0, 0, 0, $this - >srcW, $this - >srcH);

            return $this - >EchoImage($cImg, $toFile);

            ImageDestroy($cImg);

        }

        else

        {

            $cImg = $this - >CreatImage($this - >im, $this - >srcW, $this - >srcH, 0, 0, 0, 0, $this - >srcW, $this - >srcH);

            return $this - >EchoImage($cImg, $toFile);

            ImageDestroy($cImg);

        }

    }

    //生成最小裁剪后的缩图

    function Cut($toFile, $toW, $toH)

    {

        $toWH = $toW / $toH;

        $srcWH = $this - >srcW / $this - >srcH;

        if ($toWH <= $srcWH)

        {

            $ctoH = $toH;

            $ctoW = $ctoH * ($this - >srcW / $this - >srcH);

        }

        else

        {

            $ctoW = $toW;

            $ctoH = $ctoW * ($this - >srcH / $this - >srcW);

        }

        $allImg = $this - >CreatImage($this - >im, $ctoW, $ctoH, 0, 0, 0, 0, $this - >srcW, $this - >srcH);

        $cImg = $this - >CreatImage($allImg, $toW, $toH, 0, 0, ($ctoW - $toW) / 2, ($ctoH - $toH) / 2, $toW, $toH);

        return $this - >EchoImage($cImg, $toFile);

        ImageDestroy($cImg);

        ImageDestroy($allImg);

    }

    //生成背景填充的缩图

    function BackFill($toFile, $toW, $toH, $bk1 = 255, $bk2 = 255, $bk3 = 255)

    {

        $toWH = $toW / $toH;

        $srcWH = $this - >srcW / $this - >srcH;

        if ($toWH <= $srcWH)

        {

            $ftoW = $toW;

            $ftoH = $ftoW * ($this - >srcH / $this - >srcW);

        }

本文地址:https://www.freemoban.com/php/2015/0129/339.html

猜你喜欢
栏目推荐
模板推荐

Copyright:www.freemoban.com 免费模板网 All Rights Reserved 网站备案:辽ICP备19014872号-2   辽公网安备 21010602000376号  辽公网安备:42900402000182号

免责声明:本站部分资源来自互联网收集,版权归原创者所有,如果侵犯了你的权益,我们会及时删除侵权内容,联系QQ:1615187561 谢谢合作!