当前位置:论坛首页 > Linux面板 > 求助

【已解决】discuz使用了ImageMagick之后,帖子上传gif动态图不...

发表在 Linux面板2020-9-28 11:20 [复制链接] 0 858

本帖最后由 沒冭多旳話` 于 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库一样不加水印,但是它上传后依然是动态图片。谢谢了。
imagecreategif图片加水印问题.gif
有的时候解决问题还得靠自己!
原因分析:之所以会出现使用了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;
                        }

如图: 微信截图_20201012134804.png

在处理缩放原图的方法下面加入判断,即:
function Thumb_IM() {下加入 if($this->imginfo['mime'] == 'image/gif') {
                          return 1;
                        }

如图: 微信截图_20201012135031.png

以上为自行研究出来的,希望能帮到大家,不喜勿喷!
使用道具 举报 只看该作者 回复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

企业版年付运维跟进群

普通问题处理

论坛响应时间:72小时

问题处理方式:排队(仅解答)

工作时间:白班:9:00 - 18:00

紧急问题处理

论坛响应时间:10分钟

问题处理方式:1对1处理(优先)

工作时间:白班:9:00 - 18:00

工作时间:晚班:18:00 - 24:00

立即付费处理

工作时间:09:00至24:00

快速回复 返回顶部 返回列表