go - 如何在 Go 语言中创建优化和渐进式图像(JPG、PNG)

标签 go imagemagick imagick go-imagick

我在 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/

相关文章:

php Imagemagick jpg 黑色背景

php - 在 xampp 中添加 Imagick

go - 如何读取Volumesnapshot对象(或任何K8s对象)

json - 如何从bson文档中呈现json字符串

text - Imagemagick和Web字体

bash - ImageMagick 如何输出十六进制颜色而不是 SRGB?

ruby-on-rails - 在回形针和 RMagick 中将现有图像调整为新样式

php - 未捕获的异常 'ImagickException',消息为 'Compare images failed'

Golang 映射结构映射

email - Prometheus 电子邮件警报以显示指标值