你遇到過thinkphp水印背景變白么?
在使用thinkphp對圖片處理的時候,對于png圖片的處理比如裁剪,縮略圖,都會出現(xiàn)背景為白色,不是透明的情況。
這里只是使用了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);
通過修改上面三處方法,即可實現(xiàn)thinkphp裁剪png圖片支持透明的效果了。
評論
圖片
表情
