PHP实现生成透明背景的PNG缩略图函数分享
文章分享:PHP实现生成透明背景PNG缩略图的函数心得
在Web开发中,我们经常需要生成图片的缩略图。之前我分享过一个PHP生成缩略图的函数,但它在处理PNG图片时存在一个缺陷,即生成的缩略图背景为黑色。今天,我为大家带来一个新的函数,可以生成具有透明背景的PNG缩略图。
这个函数的关键在于两处:`imagealphablending($thumb,false)`和`imagesavealpha($thumb,true)`。它们的作用是保留PNG图片的alpha值,确保透明背景不会丢失。
以下是函数的详细代码:
```php
function pngthumb($sourePic, $smallFileName, $width, $heigh) {
// 从PNG图片创建图像资源
$image = imagecreatefrompng($sourePic);
// 保留图像的透明色
imagesavealpha($image, true);
// 获取原图宽度和高度
$BigWidth = imagesx($image);
$BigHeigh = imagesy($image);
// 创建新的真彩色图像资源,用于存放缩略图
$thumb = imagecreatetruecolor($width, $heigh);
// 不合并颜色,直接使用原图颜色(包括透明色)
imagealphablending($thumb, false);
// 保留缩略图的透明色
imagesavealpha($thumb, true);
// 重新采样并复制图像资源,生成缩略图
if (imagecopyresampled($thumb, $image, 0, 0, 0, 0, $width, $heigh, $BigWidth, $BigHeigh)) {
// 保存缩略图为PNG格式
imagepng($thumb, $smallFileName);
}
// 返回缩略图路径
return $smallFileName;
}
```
如何使用这个函数呢?很简单,只需要提供原图的路径、缩略图的名称、缩略图的宽度和高度即可。例如:`pngthumb("a.png", "c.png", 300, 300)`。这样,你就可以得到一张名为“c.png”的,大小为300x300像素的,具有透明背景的PNG缩略图了。
这个函数能够帮助你更好地处理PNG图片,生成具有透明背景的缩略图。希望这个函数能对你的开发有所帮助。如果你有任何疑问或建议,欢迎与我交流。也欢迎大家分享更多的开发经验和技巧。网络推广网站推广转载注明出处:网站名称。
编程语言
- PHP实现生成透明背景的PNG缩略图函数分享
- JavaScript中的return语句简单介绍
- js判断价格,必须为数字且不能为负数的实现方法
- 宝丽通3.90播放器调用代码
- Laravel 连接(Join)示例
- vue.js自定义组件directives的实例代码
- 使用swoole 定时器变更超时未支付订单状态的解决
- javascript asp教程第四课 同时使用vbscript和javascri
- 微信小程序使用wxParse解析html的方法教程
- vue 利用路由守卫判断是否登录的方法
- JetBrains(IEDA、CLion、Pycharm) 学生获得免费使用资格
- jQuery实现数字自动增加或者减少的动画效果示例
- CodeIgniter配置之routes.php用法实例分析
- jQuery实现点击DIV同时点击CheckBox,并为DIV上背景色
- jquery+ajax实现直接提交表单实例分析
- Vue中的字符串模板的使用