欧美xxxxxbbbb_久久国内精品自在自线_日韩中文字幕在线一区二区三区_强行灌满h校园催眠

登錄

解決thinkphp裁剪png圖片背景不透明的方法

php筆記 置頂
0 2872

在使用thinkphp對(duì)圖片處理的時(shí)候,對(duì)于png圖片的處理比如裁剪,縮略圖,都會(huì)出現(xiàn)背景為白色,不是透明的情況。

這里只是使用了thinkphp3.2.3版本,默認(rèn)GD庫(kù)處理,其他的類庫(kù)自行解決哦。

下面我們看,thinkphp裁剪png圖片背景不透明的問(wèn)題怎么解決?

其實(shí),解決起來(lái)也是很簡(jiǎn)單的,只要將文件ThinkPHP/Library/Think/Image/Driver/GD.class.php修改其中的三個(gè)方法即可。

1、save()方法,第98行。
  1. 原代碼:
  2.  
  3. $fun  =   'image'.$type;
  4. $fun($this->img $imgname);
  5.  
  6. 修改為:
  7.  
  8. $fun  =   'image'.$type;
  9. imagesavealpha($this->img true);
  10. $fun($this->img $imgname);
2、crop()方法,第168行。
  1. 原代碼:
  2.  
  3. $color = imagecolorallocate($img 255 255 255);
  4. imagefill($img 0 0 $color);
  5.  
  6. 修改為:
  7.  
  8. $color = imagecolorallocatealpha($img 0 0 0 127);
  9. imagefill($img 0 0 $color);
  10. imagesavealpha($img true);
3、thumb()方法,第266行。
  1. 原代碼:
  2.  
  3. $color = imagecolorallocate($img 255 255 255);
  4.  
  5. 修改為:
  6.  
  7. $color = imagecolorallocatealpha($img 0 0 0 127);

通過(guò)修改上面三處方法,即可實(shí)現(xiàn)thinkphp裁剪png圖片支持透明的效果了。

發(fā)表評(píng)論

0 個(gè)回復(fù)