关于wecenter上传图片的压缩质量问题,疑似BUG !

这个问题我发现很久了,不知各位发现没有,就是在wc上传图片附件时,产生的缩略图,在程序中有一个quality参数,可以设置压缩品质,这个数字(百分比)越高,质量越好,文件容量也越大。有时候为了节省存储空间,我们也许可以调整这个参数,来获取一个平衡的图片品质和文件容量。   可是,我发现,似乎无论怎么改变这个quality参数,出来的图片品质都是一样的,文件尺寸也是一样的。 所以,我查了查代码,也翻了翻PHP手册,找到问题了。   请看,在/core/image.php这个位置,红框的是原来的代码,下面灰色注释的是我改的代码。
QQ截图20181230122521.jpg
  如果使用原来的代码,那么图片压缩品质无效。而使用我改的代码,则有效。 原因是什么呢?看PHP手册:
QQ截图20181230122703.jpg
  原来,setCompressionQuality这个函数仅对新创建文件有效,而对于已存在文件(上传图片属于已存在文件)则无效。对于后者,应该使用 setImageCompressionQuality()这个函数(名字中多了Image)   我不清楚这个问题的产生,是与我使用的PHP图像处理插件有关,还是PHP版本有关(我用的是PHP7.3)。所以不确定这是不是BUG,但确实解决了我的问题。   给各位同学以及WC官方参考。     ————————————————————————————————————   这里附上压缩效果对比图。   【这是原版代码,quality(默认=80)参数失效情况下的缩略图,文件尺寸是202KB
thumb_47ea8077ac4cb8547a093ad22a3ccfc1.jpg
  【这是修正了代码之后的缩略图,文件尺寸是60KB(我设置了quality = 60)】
thumb_5619b15132f872d25e323d8bd1c06dc1.jpg
  可以看出,文件尺寸大幅减小了,但图片视觉效果其实差不太多,对于一般网络社区而言,足够了。   ==========================================   ?另外,再给WC官方提一个建议,在管理后台加一个图片压缩品质的功能,允许站长设置整站的图片压缩品质。
    已邀请:

    haines - 90后,开源,woshur.com

    之前没注意过,感谢

    卓越膜结构 - 专业膜结构公司http://www.zzzymjg.com

    这个马克下。

    持续关注中。。

    要回复问题请先登录注册