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 相关文章推荐
PHP 截取字符串专题集合
Aug 19 PHP
PHP数组 为文章加关键字连接 文章内容自动加链接
Dec 29 PHP
php中将html中的br换行符转换为文本输入中的换行符
Mar 26 PHP
PHP把数字转成人民币大写的函数分享
Jun 30 PHP
PHP下通过QRCode类库创建中间带网站LOGO的二维码
Jul 12 PHP
php使用Imagick生成图片的方法
Jul 31 PHP
golang与PHP输出excel示例
Jul 22 PHP
PHP导出带样式的Excel示例代码
Aug 28 PHP
PHP 实现浏览记录并按日期分组
May 11 PHP
Windows下wamp php单元测试工具PHPUnit安装及生成日志文件配置方法
May 28 PHP
thinkphp5框架实现的自定义扩展类操作示例
May 16 PHP
PHP笛卡尔积实现原理及代码实例
Dec 09 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中通过虚代理实现延迟加载的实现代码
2011/06/10 PHP
php第一次无法获取cookie问题处理
2014/12/15 PHP
php实现将base64格式图片保存在指定目录的方法
2016/10/13 PHP
php简单读取.vcf格式文件的方法示例
2017/09/02 PHP
Laravel框架运行出错提示RuntimeException No application encryption key has been specified.解决方法
2019/04/02 PHP
JavaScript 获取事件对象的注意点
2009/07/29 Javascript
Jquery 数据选择插件Pickerbox使用介绍
2012/08/24 Javascript
jquery实现点击TreeView文本父节点展开/折叠子节点
2013/01/10 Javascript
Bootstrap3.0学习教程之JS折叠插件
2016/05/27 Javascript
JavaScript将DOM事件处理程序封装为event.js 出现的低级错误问题
2016/08/03 Javascript
Angular.JS学习之依赖注入$injector详析
2016/10/20 Javascript
让微信小程序支持ES6中Promise特性的方法详解
2017/06/13 Javascript
node前端开发模板引擎Jade的入门
2018/05/11 Javascript
js实现窗口全屏示例详解
2019/09/17 Javascript
Javascript实现html转pdf高清版(提高分辨率)
2020/02/19 Javascript
JS中FormData类实现文件上传
2020/03/27 Javascript
在Python的Django框架中加载模版的方法
2015/07/16 Python
python中PIL安装简单教程
2016/04/21 Python
Python匹配中文的正则表达式
2016/05/11 Python
Python常用时间操作总结【取得当前时间、时间函数、应用等】
2017/05/11 Python
python实现稀疏矩阵示例代码
2017/06/09 Python
Python2和Python3中print的用法示例总结
2017/10/25 Python
浅谈python之高阶函数和匿名函数
2019/03/21 Python
python虚拟环境模块venv使用及示例
2020/03/04 Python
Python爬虫与反爬虫大战
2020/07/30 Python
Python实现一个简单的递归下降分析器
2020/08/01 Python
轻松掌握CSS3中的字体大小单位rem的使用方法
2016/05/24 HTML / CSS
Keds官方网站:购买帆布运动鞋和经典皮鞋
2016/11/12 全球购物
南京迈特望C/C++面试题
2012/07/09 面试题
技术人员面试提纲
2013/11/28 职场文书
关于安全演讲稿
2014/05/09 职场文书
热血教师观后感
2015/06/10 职场文书
保险公司岗前培训工作总结
2015/10/24 职场文书
先进基层党组织事迹材料2016
2016/02/29 职场文书
上帝为你开了一扇窗之Tkinter常用函数详解
2021/06/02 Python