PHP实现生成透明背景的PNG缩略图函数分享


Posted in PHP onJuly 08, 2014

之前在WEB开发笔记写过一个PHP生成缩略图的函数,虽然那个函数能够生成缩略图,但是有一定的缺陷,在生成PNG缩略图的时候,背景是黑色,今天又写了一个函数来弥补一下。代码很简单,就是imagealphablending($thumb,false);与imagesavealpha($thumb,true);很重要.主要就是把PNG的alpha值保存,不要丢失而已。

函数如下:

<?PHP
/*
 *$sourePic:原图路径
 * $smallFileName:小图名称
 * $width:小图宽
 * $heigh:小图高
 * 转载注明 www.chhua.com*/
function pngthumb($sourePic,$smallFileName,$width,$heigh){
	$image=imagecreatefrompng($sourePic);//PNG
		 	imagesavealpha($image,true);//这里很重要 意思是不要丢了$sourePic图像的透明色;
		 	$BigWidth=imagesx($image);//大图宽度
			$BigHeigh=imagesy($image);//大图高度
			$thumb = imagecreatetruecolor($width,$heigh);
			imagealphablending($thumb,false);//这里很重要,意思是不合并颜色,直接用$img图像颜色替换,包括透明色;
			imagesavealpha($thumb,true);//这里很重要,意思是不要丢了$thumb图像的透明色;
			if(imagecopyresampled($thumb,$image,0,0,0,0,$width,$heigh,$BigWidth,$BigHeigh)){
			imagepng($thumb,$smallFileName);}
			return $smallFileName;//返回小图路径 转载注明 www.chhua.com
}
 
pngthumb("a.png", "c.png", 300, 300);//调用
?>
PHP 相关文章推荐
不用数据库的多用户文件自由上传投票系统(3)
Oct 09 PHP
php 前一天或后一天的日期
Jun 28 PHP
PHP遍历数组的几种方法
Mar 22 PHP
PHP文件去掉PHP注释空格的函数分析(PHP代码压缩)
Jul 02 PHP
PHP 线程安全与非线程安全版本的区别深入解析
Aug 06 PHP
PHP实现把文本中的URL转换为链接的auolink()函数分享
Jul 29 PHP
PHP函数extension_loaded()用法实例
Jan 19 PHP
phpcms手机内容页面添加上一篇和下一篇
Jun 05 PHP
php文件操作小结(删除指定文件/获取文件夹下的文件名/读取文件夹下图片名)
May 09 PHP
详谈phpAdmin修改密码后拒绝访问的问题
Apr 03 PHP
Docker搭建自己的PHP开发环境
Feb 24 PHP
PHP常见字符串操作函数与用法总结
Mar 04 PHP
PHP的error_reporting错误级别变量对照表
Jul 08 #PHP
PHP获取客户端真实IP地址的5种情况分析和实现代码
Jul 08 #PHP
php+mysql不用递归实现的无限级分类实例(非递归)
Jul 08 #PHP
PHP生成短网址的3种方法代码实例
Jul 08 #PHP
PHP的fsockopen、pfsockopen函数被主机商禁用的解决办法
Jul 08 #PHP
php中函数前加&amp;符号的作用分解
Jul 08 #PHP
PHP实现的连贯操作、链式操作实例
Jul 08 #PHP
You might like
PHP substr 截取字符串出现乱码问题解决方法[utf8与gb2312]
2011/12/16 PHP
解析php获取字符串的编码格式的方法(函数)
2013/06/21 PHP
PHP两种快速排序算法实例
2015/02/15 PHP
PHP实现自动识别原编码并对字符串进行编码转换的方法
2016/07/13 PHP
yii2 commands模式以及配置crontab定时任务的方法
2017/08/19 PHP
关于javascript DOM事件模型的两件事
2010/07/22 Javascript
JavaScript中几个重要的属性(this、constructor、prototype)介绍
2013/05/19 Javascript
鼠标滑过出现预览的大图提示效果
2014/02/26 Javascript
JS实现的tab切换选项卡效果示例
2017/02/28 Javascript
Vue数组更新及过滤排序功能
2017/08/10 Javascript
Node.js pipe实现源码解析
2017/08/12 Javascript
js实现Tab选项卡切换效果
2020/07/17 Javascript
详解angular脏检查原理及伪代码实现
2018/06/08 Javascript
webpack 样式加载的实现原理
2018/06/12 Javascript
vue.js与后台数据交互的实例讲解
2018/08/08 Javascript
在vue中使用vue-echarts-v3的实例代码
2018/09/13 Javascript
vue路由插件之vue-route
2019/06/13 Javascript
Node.js fs模块(文件模块)创建、删除目录(文件)读取写入文件流的方法
2019/09/03 Javascript
快速了解Vue父子组件传值以及父调子方法、子调父方法
2020/07/15 Javascript
js实现全选和全不选
2020/07/28 Javascript
浅谈nuxtjs校验登录中间件和混入(mixin)
2020/11/06 Javascript
[01:45]亚洲邀请赛互动指南虚拟物品介绍
2015/01/30 DOTA
[47:06]DOTA2上海特级锦标赛主赛事日 - 4 败者组第五轮 MVP.Phx VS EG第一局
2016/03/05 DOTA
python网络爬虫采集联想词示例
2014/02/11 Python
Python扫描IP段查看指定端口是否开放的方法
2015/06/09 Python
简单了解python元组tuple相关原理
2019/12/02 Python
python3 循环读取excel文件并写入json操作
2020/07/14 Python
阿里旅行:飞猪
2017/01/05 全球购物
亚马逊西班牙购物网站:amazon西班牙
2017/03/06 全球购物
医院营销工作计划
2015/01/16 职场文书
汽车4S店前台接待岗位职责
2015/04/03 职场文书
病危通知单
2015/04/17 职场文书
儿童诗两首教学反思
2016/02/23 职场文书
选对餐饮营销策略,营业额才会上涨
2019/08/27 职场文书
比较node.js和Deno
2021/04/27 Javascript
python 如何用terminal输入参数
2021/05/25 Python