PHP生成图片缩略图的类分享
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章主要讲解了"PHP生成图片缩略图的类分享",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"PHP生成图片缩略图的类分享"吧!注:此功能依赖GD2图
千家信息网最后更新 2026年11月03日PHP生成图片缩略图的类分享
这篇文章主要讲解了"PHP生成图片缩略图的类分享",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"PHP生成图片缩略图的类分享"吧!
注:此功能依赖GD2图形库
最近要用php生成缩略图,在网上找了一下,发现了这篇文章:PHP生成图片缩略图
试用了一下后,发现有这样几个问题:
1、png图片生成的缩略图是jpg格式的
2、png图片生成的缩略图没有了透明(半透明)效果(填充了黑色背景)
3、代码语法比较老
因此,在这个版本的基础上简单修改优化了一下。
PHP生成缩略图类
srcimg = $imgPath; $this->resize_width = $width; $this->resize_height = $height; $this->cut = $isCut; //图片的类型 $this->type = strtolower(substr(strrchr($this->srcimg,"."),1)); //初始化图象 $this->initi_img(); //目标图象地址 $this -> dst_img($savePath); //-- $this->width = imagesx($this->im); $this->height = imagesy($this->im); //生成图象 $this->newimg(); ImageDestroy ($this->im); } private function newimg() { //改变后的图象的比例 $resize_ratio = ($this->resize_width)/($this->resize_height); //实际图象的比例 $ratio = ($this->width)/($this->height); if($this->cut) { //裁图 $newimg = imagecreatetruecolor($this->resize_width,$this->resize_height); if($this->type=="png") { imagefill($newimg, 0, 0, imagecolorallocatealpha($newimg, 0, 0, 0, 127)); } if($ratio>=$resize_ratio) { //高度优先 imagecopyresampled($newimg, $this->im, 0, 0, 0, 0, $this->resize_width,$this->resize_height, (($this->height)*$resize_ratio), $this->height); } else { //宽度优先 imagecopyresampled($newimg, $this->im, 0, 0, 0, 0, $this->resize_width, $this->resize_height, $this->width, (($this->width)/$resize_ratio)); } } else { //不裁图 if($ratio>=$resize_ratio) { $newimg = imagecreatetruecolor($this->resize_width,($this->resize_width)/$ratio); if($this->type=="png") { imagefill($newimg, 0, 0, imagecolorallocatealpha($newimg, 0, 0, 0, 127)); } imagecopyresampled($newimg, $this->im, 0, 0, 0, 0, $this->resize_width, ($this->resize_width)/$ratio, $this->width, $this->height); } else { $newimg = imagecreatetruecolor(($this->resize_height)*$ratio,$this->resize_height); if($this->type=="png") { imagefill($newimg, 0, 0, imagecolorallocatealpha($newimg, 0, 0, 0, 127)); } imagecopyresampled($newimg, $this->im, 0, 0, 0, 0, ($this->resize_height)*$ratio, $this->resize_height, $this->width, $this->height); } } if($this->type=="png") { imagesavealpha($newimg, true); imagepng ($newimg,$this->dstimg); } else { imagejpeg ($newimg,$this->dstimg); } } //初始化图象 private function initi_img() { if($this->type=="jpg") { $this->im = imagecreatefromjpeg($this->srcimg); } if($this->type=="gif") { $this->im = imagecreatefromgif($this->srcimg); } if($this->type=="png") { $this->im = imagecreatefrompng($this->srcimg); } } //图象目标地址 private function dst_img($dstpath) { $full_length = strlen($this->srcimg); $type_length = strlen($this->type); $name_length = $full_length-$type_length; $name = substr($this->srcimg,0,$name_length-1); $this->dstimg = $dstpath; } }?>使用
使用时,直接调用类的构造函数即可,构造函数如下:
$resizeimage = new resizeimage($imgPath, $width, $height, $isCut, $savePath);
参数
$imgPath:原图片地址
$width:缩略图宽
$height:缩略图高
$isCut:是否裁剪,bool值
$savePath:缩略图地址(可以跟原图片地址相同)
示例
效果
感谢各位的阅读,以上就是"PHP生成图片缩略图的类分享"的内容了,经过本文的学习后,相信大家对PHP生成图片缩略图的类分享这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!
图片
生成
图象
地址
学习
内容
函数
效果
比例
目标
篇文章
相同
代码
几个问题
功能
参数
图形
基础
实际
宽度
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网科技
南京欣网互联网络科技有限公司
美国互联网科技巨头监管
深圳科技互联网
上海互联网科技有限公司
小马过河互联网科技
时间互联网络科技
齐家互联网科技有限公司
大白互联网科技
佩信高科技互联网
互联网科技革命什么开始
湖南一路畅行互联网科技
知域互联网科技有限公司大骗子
保险科技服务互联网营销体系
皮皮虾互联网科技有限公司
互联网科技数字货币
银川新华互联网科技学校是国营吗
绵阳真晨互联网科技有限公司
杭州融税互联网科技有限公司
杭州科技互联网公司有哪些
朗新科技与工业互联网
合肥互联网科技公司
创业天下互联网科技有限公司
互联网系的金融科技公司
中化能源互联网科技招聘
南平创想时代互联网科技有限公司
广州新华互联网科技学校电竞方面
朱啸虎曾投资哪些互联网科技企业
互联网领先科技宣传片
保山互联网科技靠谱吗