千家信息网

php怎样生成缩略图不失真

发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,今天给大家介绍一下php怎样生成缩略图不失真。文章的内容小编觉得不错,现在给大家分享一下,觉得有需要的朋友可以了解一下,希望对大家有所帮助,下面跟着小编的思路一起来阅读吧。本文操作环境:Windows
千家信息网最后更新 2025年01月20日php怎样生成缩略图不失真

今天给大家介绍一下php怎样生成缩略图不失真。文章的内容小编觉得不错,现在给大家分享一下,觉得有需要的朋友可以了解一下,希望对大家有所帮助,下面跟着小编的思路一起来阅读吧。

本文操作环境:Windows7系统、PHP7.1版、DELL G3电脑

php 怎么生成缩略图不失真?

使用php函数等比例生成图片缩略图不失真的代码

//等比例生成图片缩略图不失真/**    * 生成缩略图    * $imgSrc           图片源路径    * $resize_width     图片宽度    * $resize_height    图片高度    * $dstimg           缩略图路径    * $isCut            是否剪切图片    */     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);    }$result = reSizeImg('images/15M.jpg', 1280, 1280,'thumb/xiao15.jpg');

以上就是php怎样生成缩略图不失真的全部内容了,更多与php怎样生成缩略图不失真相关的内容可以搜索之前的文章或者浏览下面的文章进行学习哈!相信小编会给大家增添更多知识,希望大家能够支持一下!

0