本帖最后由 沒冭多旳話` 于 2020-10-12 14:09 编辑
环境:系统:CentOS 7.4.1708 宝塔版本:7.4.5专业版 php版本:7.4 网站程序版本:Discuz! X3.4/20190206 水印格式:png
问题:discuz使用了ImageMagick库上传图片之后,帖子中的GIF图片上传后加水印就不动了,使用gd库上传gif图片默认不加水印的。
如何让ImageMagick库上传gif动态图片添加水印后还是动态图片,或者是上传动态图片像gd库一样不加水印,但是它上传后依然是动态图片。谢谢了。
有的时候解决问题还得靠自己!
原因分析:之所以会出现使用了ImageMagick之后,帖子中的GIF图片加水印就不动了有两个原因:
第一,ImageMagick上传gif动图加水印会截取一张静态图加水印。
第二,后台设置了超过尺寸直接缩放原图,同样会触发截图。
解决思路:在对应的方法里加入gif图片判断,让它遇到gif图片就不做任何处理。
解决办法:在/source/class/class_image.php的imagemagick加水印的方法下面加入判断,即:
function Watermark_IM($type = 'forum') {下面的if($this->param['watermarktype'][$type] != 'text') {内加入:
if($this->imginfo['mime'] == 'image/gif') {
return 0;
}
如图:
在处理缩放原图的方法下面加入判断,即:
function Thumb_IM() {下加入 if($this->imginfo['mime'] == 'image/gif') {
return 1;
}
如图:
以上为自行研究出来的,希望能帮到大家,不喜勿喷! |
|