美文网首页
php生成缩略图

php生成缩略图

作者: 小朋友你有点皮 | 来源:发表于2019-03-13 14:19 被阅读0次

    调取方法:$this->reSizeImg($coverAbsolutePath,$fileUrl,'480','480');

    /**

    $imgSrc:图片地址

    $fileUrl :存储路径

    **/

    static public function reSizeImg($imgSrc,$fileUrl, $resize_width, $resize_height, $isCut = false)

        {

            //图片的类型

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

            //初始化图象

            if ($type == "jpg") {

                $im = imagecreatefromjpeg($imgSrc);

            }

            if ($type == "gif") {

                $im = imagecreatefromgif($imgSrc);

            }

            if ($type == "png") {

                $im = imagecreatefrompng($imgSrc);

            }

            //目标图象地址

            $full_length = strlen($imgSrc);

            $type_length = strlen($type);

            $name_length = $full_length - $type_length;

            $name = substr($imgSrc, 0, $name_length - 1);

            $dstimg = $fileUrl;

            $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);

        }

    备注:内容均来自网络,学习使用,不进行商业用途。

    邮箱:suihongxiao@yeah.net

    相关文章

      网友评论

          本文标题:php生成缩略图

          本文链接:https://www.haomeiwen.com/subject/yptaeqtx.html