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中显示格式化的用户输入
Oct 09 PHP
php 获取当前访问的url文件名的方法小结
Feb 08 PHP
php数组函数序列之array_push() 数组尾部添加一个或多个元素(入栈),返回新长度。
Nov 07 PHP
php之CodeIgniter学习笔记
Jun 17 PHP
浅析PHP绘图技术
Jul 03 PHP
php一些错误处理的方法与技巧总结
Aug 10 PHP
PHP开发框架laravel安装与配置教程
Mar 13 PHP
Yii2 assets清除缓存的方法
May 16 PHP
PHP判断是手机端还是PC端 PHP判断是否是微信浏览器
Mar 15 PHP
PHP实现八皇后算法
May 06 PHP
PHP 实现文件压缩解压操作的方法
Jun 14 PHP
在laravel-admin中列表中禁止某行编辑、删除的方法
Oct 03 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格式化时间戳
2016/12/17 PHP
深入学习微信网址链接解封的防封原理visit_type
2019/08/15 PHP
jQuery仿Excel表格编辑功能的实现代码
2013/05/01 Javascript
js获取浏览器基本信息大全
2014/11/27 Javascript
ECMAScript5中的对象存取器属性:getter和setter介绍
2014/12/08 Javascript
推荐阅读的js快速判断IE浏览器(兼容IE10与IE11)
2015/12/13 Javascript
谈一谈js中的执行环境及作用域
2016/03/30 Javascript
基于JS实现导航条flash导航条
2016/06/17 Javascript
JS使用JSON作为参数实例分析
2016/06/23 Javascript
jQuery.uploadify文件上传组件实例讲解
2016/09/23 Javascript
React如何利用相对于根目录进行引用组件详解
2017/10/09 Javascript
vue项目中,main.js,App.vue,index.html的调用方法
2018/09/20 Javascript
玩转Koa之核心原理分析
2018/12/29 Javascript
教你使用vue-cli快速构建的小说阅读器
2019/05/13 Javascript
[01:41]DOTA2超级联赛专访YYF 称一辈子难忘TI2
2013/05/28 DOTA
[03:00]2018完美盛典_最佳英雄奖
2018/12/17 DOTA
[01:16:50]DOTA2-DPC中国联赛 正赛 Phoenix vs CDEC BO3 第一场 3月7日
2021/03/11 DOTA
python实现异步回调机制代码分享
2014/01/10 Python
探寻python多线程ctrl+c退出问题解决方案
2014/10/23 Python
利用numpy和pandas处理csv文件中的时间方法
2018/04/19 Python
python3+PyQt5实现自定义分数滑块部件
2018/04/24 Python
selenium+python配置chrome浏览器的选项的实现
2020/03/18 Python
python em算法的实现
2020/10/03 Python
python用700行代码实现http客户端
2021/01/14 Python
Dr. Martens马汀博士官网:马丁靴始祖品牌
2016/10/15 全球购物
Ibatis的核心配置文件都有什么
2014/09/08 面试题
高校生生产实习自我鉴定
2013/09/21 职场文书
教师自荐书
2013/10/08 职场文书
致全体运动员广播稿
2014/02/01 职场文书
委托书怎么写
2014/07/31 职场文书
个人廉政承诺书
2015/04/28 职场文书
运动员入场前导词
2015/07/20 职场文书
导游词创作书写原则以及开场白技巧怎么学?
2019/09/25 职场文书
python3实现常见的排序算法(示例代码)
2021/07/04 Python
python之django路由和视图案例教程
2021/07/26 Python
Nginx中使用Lua脚本与图片的缩略图处理的实现
2022/03/18 Servers