Hi,are you ready?

准备好开始了吗?
那就与我们取得联系吧

有一个网站项目想和我们谈谈吗?您可以填写右边的表格,让我们了解您的项目需求,这是一个良好的开始,我们将会尽快与你取得联系。当然也欢迎您 给我们写信或是打电话,让我们听到你的声音!

Distance远近互联网络运营服务商

地 址:河北省石家庄市新华区华强广场7楼

电 话:14730427447

E-mail:815752879@qq.com

填写您的项目信息

PHP等比例生成缩略图

发布时间:2019-07-17T17:48:49

使用ThinkPHP生成缩略图及显示,具有一定的参考价值,感兴趣的小伙伴们可以参考一下


首先了解父类Image.class.php(ThinkPHP/Library/Think/Image.class.php)中的一些函数


1:open() 打开被处理的图片


2:thumb() 生成缩略图 默认1等比缩放 (其中2,3,4,5,6代表的含义参见父类文件Image.class.php)


3:save() 缩略图到服务器


生成缩略图步骤分以下四步


* 1.实例化

* 2.打开图片open()

* 3.生成缩略图thumb() 默认等比缩放

* 4.保存save()

                

PHP等比例生成缩略图

/**

    * 生成缩略图

    * $imgSrc           图片源路径

    * $resize_width     图片宽度

    * $resize_height    图片高度

    * $dstimg           缩略图路径

    * $isCut            是否剪切图片

    */

    public function reSizeImg($imgSrc, $resize_width, $resize_height, $dstimg, $isCut = false) {

        //图片的类型

        $type = substr(strrchr($imgSrc, "."), 1);

        //初始化图象

        if ($type == "jpg" || $type == "jpeg") {

            $im = imagecreatefromjpeg($imgSrc);

        }

        if ($type == "gif") {

            $im = imagecreatefromgif($imgSrc);

        }

        if ($type == "png") {

            $im = imagecreatefrompng($imgSrc);

        }

  

        $width = imagesx($im);

        $height = imagesy($im);

  

        //生成图象

        //改变后的图象的比例

        $resize_ratio = ($resize_width) / ($resize_height);

        //实际图象的比例

        $ratio = ($width) / ($height);

        if (($isCut) == 1) {

            if ($ratio >= $resize_ratio) {

                //高度优先

                $newimg = imagecreatetruecolor($resize_width, $resize_height);

                imagecopyresampled($newimg, $im, 0, 0, 0, 0, $resize_width, $resize_height, (($height) * $resize_ratio), $height);

                ImageJpeg($newimg, $dstimg);

            }

            if ($ratio < $resize_ratio) {

                //宽度优先

                $newimg = imagecreatetruecolor($resize_width, $resize_height);

                imagecopyresampled($newimg, $im, 0, 0, 0, 0, $resize_width, $resize_height, $width, (($width) / $resize_ratio));

                ImageJpeg($newimg, $dstimg);

            }

        } else {

            if ($ratio >= $resize_ratio) {

                $newimg = imagecreatetruecolor($resize_width, ($resize_width) / $ratio);

                imagecopyresampled($newimg, $im, 0, 0, 0, 0, $resize_width, ($resize_width) / $ratio, $width, $height);

                ImageJpeg($newimg, $dstimg);

            }

            if ($ratio < $resize_ratio) {

                $newimg = imagecreatetruecolor(($resize_height) * $ratio, $resize_height);

                imagecopyresampled($newimg, $im, 0, 0, 0, 0, ($resize_height) * $ratio, $resize_height, $width, $height);

                ImageJpeg($newimg, $dstimg);

            }

        }

        ImageDestroy($im);

    }

远近互联前端小秦整理发布,希望能对学习技术的你有所帮助

远近互联专业提供网站建设、APP开发、网站优化、外贸网站SEO、微信运营的品牌整合营销服务让客户通过网络品牌建立与网络传播提高业绩。


【相关推荐】
返回列表
在线沟通

Are you interested in ?

  您感兴趣吗?

有关我们服务的更多信息,请联系

147 3042 7447 周经理

与我们合作

与远近互联合作,您将会得到更成熟的网络品牌建设服务。我们以客户至上,同时也相互挑战,力求呈现更好的网络品牌建设成果。

项目经理热线(周经理):

147 3042 7447

TOP

QQ客服

14730427447