php缩小png图片不损失透明色的解决方法


Posted in PHP onDecember 25, 2013

主要是利用gd库的两个方法:

imagecolorallocatealpha //分配颜色 + alpha
imagesavealpha //设置在保存 png 图像时保存完整的 alpha 通道信息

代码示例:

//获取源图gd图像标识符
$srcImg = imagecreatefrompng('./src.png');
$srcWidth = imagesx($srcImg);
$srcHeight = imagesy($srcImg);
//创建新图
$newWidth = round($srcWidth / 2);
$newHeight = round($srcHeight / 2);
$newImg = imagecreatetruecolor($newWidth, $newHeight);
//分配颜色 + alpha,将颜色填充到新图上
$alpha = imagecolorallocatealpha($newImg, 0, 0, 0, 127);
imagefill($newImg, 0, 0, $alpha);
//将源图拷贝到新图上,并设置在保存 PNG 图像时保存完整的 alpha 通道信息
imagecopyresampled($newImg, $srcImg, 0, 0, 0, 0, $newWidth, $newHeight, $srcWidth, $srcHeight);
imagesavealpha($newImg, true);
imagepng($newImg, './dst.png');
PHP 相关文章推荐
使用sockets:从新闻组中获取文章(二)
Oct 09 PHP
php ckeditor上传图片文件名乱码解决方法
Nov 15 PHP
PHP开发中常见的安全问题详解和解决方法(如Sql注入、CSRF、Xss、CC等)
Apr 21 PHP
PHP中file_get_contents高?用法实例
Sep 24 PHP
PHP简单处理表单输入的特殊字符的方法
Feb 03 PHP
编写PHP程序检查字符串中的中文字符个数的实例分享
Mar 17 PHP
比较完整的微信开发php代码
Aug 02 PHP
windows下的WAMP环境搭建图文教程(推荐)
Jul 27 PHP
PHP微信企业号开发之回调模式开启与用法示例
Nov 25 PHP
thinkPHP5框架自定义验证器实现方法分析
Jun 11 PHP
php 中phar包的使用教程详解
Oct 26 PHP
PHP设计模式之命令模式示例详解
Dec 20 PHP
php查看请求头信息获取远程图片大小的方法分享
Dec 25 #PHP
php对数组排序的简单实例
Dec 25 #PHP
ubuntu12.04使用c编写php扩展模块教程分享
Dec 25 #PHP
php中apc缓存使用示例
Dec 25 #PHP
php递归获取目录内文件(包含子目录)封装类分享
Dec 25 #PHP
输入值/表单提交参数过滤有效防止sql注入的方法
Dec 25 #PHP
zend framework文件上传功能实例代码
Dec 25 #PHP
You might like
我常用的几个类
2006/10/09 PHP
PHP数据库操作之基于Mysqli的数据库操作类库
2014/04/19 PHP
ThinkPHP实现多数据库连接的解决方法
2014/07/01 PHP
php中用memcached实现页面防刷新功能
2014/08/19 PHP
yii权限控制的方法(三种方法)
2015/12/28 PHP
Yii2实现中国省市区三级联动实例
2017/02/08 PHP
jquery 模拟雅虎首页的点击对话框效果
2010/04/11 Javascript
javascript AOP 实现ajax回调函数使用比较方便
2010/11/20 Javascript
jQuery参数列表集合
2011/04/06 Javascript
javascript eval(func())使用示例
2013/12/05 Javascript
基于jquery和svg实现超炫酷的动画特效
2014/12/09 Javascript
JavaScript对表格或元素按文本,数字或日期排序的方法
2015/05/26 Javascript
jQuery轻松实现表格的隔行变色和点击行变色的实例代码
2016/05/09 Javascript
jQuery实现的选择商品飞入文本框动画效果完整实例
2016/08/10 Javascript
angularjs 实现带查找筛选功能的select下拉框实例
2017/01/11 Javascript
微信小程序授权获取用户详细信息openid的实例详解
2017/09/20 Javascript
微信小程序基于本地缓存实现点赞功能的方法
2017/12/18 Javascript
vue-cli 引入、配置axios的方法
2018/05/08 Javascript
Vue路由history模式解决404问题的几种方法
2018/09/29 Javascript
详解如何制作并发布一个vue的组件的npm包
2018/11/10 Javascript
使用ThinkJs搭建微信中控服务的实现方法
2019/08/08 Javascript
vue使用nprogress加载路由进度条的方法
2020/06/04 Javascript
React冒泡和阻止冒泡的应用详解
2020/08/18 Javascript
SpringBoot+Vue 前后端合并部署的配置方法
2020/12/30 Vue.js
[00:35]DOTA2上海特级锦标赛 Newbee战队宣传片
2016/03/03 DOTA
使用Python写个小监控
2016/01/27 Python
python条件变量之生产者与消费者操作实例分析
2017/03/22 Python
django从请求到响应的过程深入讲解
2018/08/01 Python
基于python检查SSL证书到期情况代码实例
2020/04/04 Python
python实现简单贪吃蛇游戏
2020/09/29 Python
天美时手表加拿大官网:Timex加拿大
2016/09/01 全球购物
Lime Crime官网:美国一家主打梦幻精灵系的彩妆品牌
2019/03/22 全球购物
世界经理人咨询有限公司面试
2014/09/23 面试题
医学生毕业自我鉴定
2014/03/26 职场文书
2015年药店工作总结
2015/04/20 职场文书
高质量“欢迎词”
2019/04/03 职场文书