使用gm压缩图片,图片质量很差,咋解?

使用gm压缩图片,图片质量很差,咋解?

clipboard.png

如图所示,1.png是压缩前的,2.png是压缩后的。质量很差。

const gm = require('gm').subClass({imageMagick: true});
gm('/Users/jiang/Downloads/1.png')
.resize(318, 211)
.noProfile()
.write('/Users/jiang/Downloads/2.png', function (err, data) {
  if (err) {
    throw err;
  }
});

这是代码

阅读 7.4k
2 个回答
.resize(200,0)     //设置压缩后的w/h
.setFormat('JPEG')
.quality(70)       //设置压缩质量: 0-100
.strip()
.autoOrient()

不建议你在自己的服务端处理图片,一方面质量难以保证,另一方面一旦并发过高对服务器的压力很大,建议你接入第三方的图片处理,比如又拍云这种 http://docs.upyun.com/cloud/u... ,另外其实如果你需要存储图片也可以直接丢在他们上面。
接入第三方的理由是因为图片后续很可能还需要鉴黄或者其它各种处理,一般不会完全靠自己搞定。


图片处理的库也可以试试这个:
https://github.com/lovell/sharp

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进