解决thinkphp裁剪png图片背景不透明的方法

 Thinkphp   高蒙   阅读(2728)   评论(5)   2017-08-10 13:37:23    thinkphp png 


在使用thinkphp对图片处理的时候,对于png图片的处理比如裁剪,缩略图,都会出现背景为白色,不是透明的情况。

这里只是使用了thinkphp3.2.3版本,默认GD库处理,其他的类库自行解决哦。


下面我们看,thinkphp裁剪png图片背景不透明的问题怎么解决?


其实,解决起来也是很简单的,只要将文件ThinkPHP/Library/Think/Image/Driver/GD.class.php修改其中的三个方法即可。

1、save()方法,第98行。

原代码:

$fun  =   'image'.$type;
$fun($this->img, $imgname);

修改为:

$fun  =   'image'.$type;
imagesavealpha($this->img, true);
$fun($this->img, $imgname);

2、crop()方法,第168行。

原代码:

$color = imagecolorallocate($img, 255, 255, 255);
imagefill($img, 0, 0, $color);

修改为:

$color = imagecolorallocatealpha($img, 0, 0, 0, 127);
imagefill($img, 0, 0, $color);
imagesavealpha($img, true);

3、thumb()方法,第266行。

原代码:

$color = imagecolorallocate($img, 255, 255, 255);

修改为:

$color = imagecolorallocatealpha($img, 0, 0, 0, 127);


通过修改上面三处方法,即可实现thinkphp裁剪png图片支持透明的效果了。





相关文章



我要评论


站长昵称:(*)

输入内容:


评论列表


高蒙

男,程序猿一枚

 

人生要是没有理想, 那跟一条咸鱼有什么分别。


关于我

  http://www.shuchengxian.com

高蒙个人博客是以PHP技术为主的程序员个人博客。博客主要发布php开发中遇到的问题以及解决办法,同时个人博客也分享网站模板素材,jquery插件等方面素材。


站点声明:相关侵权、举报、投诉及建议等,请发E-mail:936594075#qq.com(#替换成@)。

Copyright © 2018, www.shuchengxian.com, All rights reserved. 个人博客皖公网安备 34152302000022号 皖ICP备15015490号

关键词:个人博客,PHP博客,PHP博客程序,高蒙博客,高蒙个人博客,php程序员博客,程序员个人博客