我在 Go 中使用以下代码来调整 JPEG 和 PNG 格式图像的大小。那么,我如何将它们转换为渐进式并使用 Imagick 进行优化? .我在 ubuntu 14.04
ImageMagick 6.9.3-8 Q16 x86_64
我说优化的原因是我使用以下命令来测试图像大小是否减小。但是,它会增加输出文件的大小。
命令:
convert -strip -interlace Plane input-file.jpg output-file.jpg
转到代码:
size = fmt.Sprintf("%dx%d^+0+0", w, h)
tx := mw.TransformImage("", size)
tx.SetImageGravity(imagick.GRAVITY_CENTER)
offsetX := -(int(w) - int(tx.GetImageWidth())) / 2
offsetY := -(int(h) - int(tx.GetImageHeight())) / 2
err := tx.ExtentImage(w, h, offsetX, offsetY)
最佳答案
您的convert 命令行会剥离图像并为其提供平面交错方案。等效的 Go 代码应该调用 mw.StripImage() 和 mw.SetImageInterlaceScheme(INTERLACE_PLANE)。
[编辑] 你是不是想关注 this example ?如果是这样,-interlace Plane 负责使图像渐进,但这不会使其变小。执行此操作的部分是 -quality 80,您可以通过调用 mw.SetImageCompressionQuality(80) 在 Go 中实现它。
关于go - 如何在 Go 语言中创建优化和渐进式图像(JPG、PNG),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42858632/