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 相关文章推荐
PHP中json_encode、json_decode与serialize、unserialize的性能测试分析
Jun 09 PHP
php set_magic_quotes_runtime() 函数过时解决方法
Jul 08 PHP
php常用Stream函数集介绍
Jun 24 PHP
PHPMailer的主要功能特点和简单使用说明
Feb 17 PHP
php命令行使用方法和命令行参数说明
Apr 08 PHP
用PHP解决的一个栈的面试题
Jul 02 PHP
PHP实现取得HTTP请求的原文
Aug 18 PHP
php中socket的用法详解
Oct 24 PHP
php实现无限级分类(递归方法)
Aug 06 PHP
WordPress中给媒体文件添加分类和标签的PHP功能实现
Dec 31 PHP
PHP版微信小店接口开发实例
Nov 12 PHP
PHP编程获取音频文件时长的方法【基于getid3类】
Apr 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
2021年最新CPU天梯图
2021/03/04 数码科技
设置php页面编码的两种方法示例介绍
2014/03/03 PHP
Joomla调用系统自带编辑器的实现方法
2016/05/05 PHP
PHP封装的MSSql操作类完整实例
2016/05/26 PHP
PHP实现页面静态化的超简单方法
2016/09/06 PHP
javascript 浏览器判断 绑定事件 arguments 转换数组 数组遍历
2009/07/06 Javascript
jQuery 标题的自动翻转实现代码
2009/10/14 Javascript
jcrop基本参数一览
2013/07/16 Javascript
JavaScript对内存分配及管理机制详细解析
2013/11/11 Javascript
jQuery 滑动方法slideDown向下滑动元素
2014/01/16 Javascript
js实现文本框中焦点在最后位置
2014/03/04 Javascript
CSS中position属性之fixed实现div居中
2015/12/14 Javascript
基于Vue实现可以拖拽的树形表格实例详解
2018/10/18 Javascript
在Node.js下运用MQTT协议实现即时通讯及离线推送的方法
2019/01/24 Javascript
微信小程序如何获取群聊的openGid以及名称详解
2019/07/17 Javascript
nodejs文件夹深层复制功能
2019/09/03 NodeJs
[34:10]Secret vs VG 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.24
2019/09/10 DOTA
python 生成目录树及显示文件大小的代码
2009/07/23 Python
Python对List中的元素排序的方法
2018/04/01 Python
Python将列表数据写入文件(txt, csv,excel)
2019/04/03 Python
python并发编程多进程 模拟抢票实现过程
2019/08/20 Python
基于python判断目录或者文件代码实例
2019/11/29 Python
python DataFrame转dict字典过程详解
2019/12/26 Python
Python使用configparser库读取配置文件
2020/02/22 Python
Python生成器传参数及返回值原理解析
2020/07/22 Python
Python用dilb提取照片上人脸的示例
2020/10/26 Python
澳大利亚工具仓库:Tools Warehouse
2018/10/15 全球购物
牧马人澳大利亚官网:Wrangler澳大利亚
2019/10/08 全球购物
两道JAVA笔试题
2016/09/14 面试题
2014年创先争优活动总结
2014/05/04 职场文书
小区的门卫岗位职责
2014/10/01 职场文书
西岭雪山导游词
2015/02/06 职场文书
国庆节慰问信
2015/02/15 职场文书
2016国庆节67周年红领巾广播稿
2015/12/18 职场文书
Python基础之条件语句详解
2021/06/16 Python
java项目构建Gradle的使用教程
2022/03/24 Java/Android