我在Go中使用以下代码来调整JPEG和PNG格式的图像大小。那么,如何使用Imagick将它们转换为渐进式并进行优化。我在ImageMagick 6.9.3-8 Q16 x86_64
ubuntu 14.04
我说优化的原因是我使用以下命令来测试图像大小是否减少。但是,它会增加输出文件的大小。
命令:
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)
答案 0 :(得分:3)
您的转换命令行会剥离图像并为其提供平面隔行扫描方案。等效的Go代码应该调用mw.StripImage()和mw.SetImageInterlaceScheme(INTERLACE_PLANE)。
[edit]您是否尝试关注this example?如果是这样,-interlace Plane负责使图像渐进,但这并不会使它变得更小。执行该操作的部分是-quality 80,您可以通过调用mw.SetImageCompressionQuality(80)在Go中实现。
答案 1 :(得分:0)