文档章节

PHP实现生成透明背景的PNG缩略图

大灰狼wow
 大灰狼wow
发布于 2016/10/31 17:24
字数 284
阅读 19
收藏 1

本文测试可用

之前在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);//调用
?>

本文转载自:http://www.jb51.net/article/51991.htm

大灰狼wow
粉丝 48
博文 396
码字总数 49161
作品 1
嘉兴
程序员
私信 提问
白夜追凶 :手 Q 图片的显示和发送逻辑

欢迎大家前往腾讯云社区,获取更多腾讯海量技术实践干货哦~ 作者:陈舜尧导语: “这张图片在快捷发图栏背景是黑色的,为啥发到AIO(会话窗口)里背景就变成白的了?” 通过一个bug单,对黑白...

腾讯云社区
2017/10/27
0
0
白夜追凶 :手 Q 图片的显示和发送逻辑

欢迎大家前往腾讯云社区,获取更多腾讯海量技术实践干货哦~ 作者:陈舜尧 导语: “这张图片在快捷发图栏背景是黑色的,为啥发到AIO(会话窗口)里背景就变成白的了?” 通过一个bug单,对黑...

腾讯云开发者社区
2017/10/27
16
0
baigo CMS v1.1.2 发布,CMS 建站系统

-------------------v1.1.2------------------- 2015-04-23 增加自定义表单功能 完善帮助信息 2015-04-20 清理变量未定义错误 2015-04-16 优化上传文件程序 优化时区设置功能 2015-04-02 数据...

baigoStudio
2015/04/23
2.2K
5
Zebra_Image 2.2 发布,PHP图像处理库

Zebra_Image 2.2 发布了,Zebra_Image 是个小型的、轻量级的、面向对象的PHP图像操作库。提供了执行多种图像操作的方法,除了 GD2 外无需依赖任何外部程序库,支持透明图片格式 GIF 和 PNG。...

红薯
2011/09/06
1K
1
解决PHP剪切缩略图生成png,gif透明图时,黑色背景问题

  最近做头像上传用到剪切,只要GIF或者PNG是透明的话,剪切后都会变成黑色的背景图。   解决方案有2种:   1.背景图填充白色的背景。   $white = imagecolorallocate($dstim,255,25...

搽搽桌子
2016/07/06
94
0

没有更多内容

加载失败,请刷新页面

加载更多

java通过ServerSocket与Socket实现通信

首先说一下ServerSocket与Socket. 1.ServerSocket ServerSocket是用来监听客户端Socket连接的类,如果没有连接会一直处于等待状态. ServetSocket有三个构造方法: (1) ServerSocket(int port);...

Blueeeeeee
今天
6
0
用 Sphinx 搭建博客时,如何自定义插件?

之前有不少同学看过我的个人博客(http://python-online.cn),也根据我写的教程完成了自己个人站点的搭建。 点此:使用 Python 30分钟 教你快速搭建一个博客 为防有的同学不清楚 Sphinx ,这...

王炳明
昨天
5
0
黑客之道-40本书籍助你快速入门黑客技术免费下载

场景 黑客是一个中文词语,皆源自英文hacker,随着灰鸽子的出现,灰鸽子成为了很多假借黑客名义控制他人电脑的黑客技术,于是出现了“骇客”与"黑客"分家。2012年电影频道节目中心出品的电影...

badaoliumang
昨天
15
0
很遗憾,没有一篇文章能讲清楚线程的生命周期!

(手机横屏看源码更方便) 注:java源码分析部分如无特殊说明均基于 java8 版本。 简介 大家都知道线程是有生命周期,但是彤哥可以认真负责地告诉你网上几乎没有一篇文章讲得是完全正确的。 ...

彤哥读源码
昨天
15
0
jquery--DOM操作基础

本文转载于:专业的前端网站➭jquery--DOM操作基础 元素的访问 元素属性操作 获取:attr(name);$("#my").attr("src"); 设置:attr(name,value);$("#myImg").attr("src","images/1.jpg"); ......

前端老手
昨天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部