登录
首页 >  Golang >  Go问答

使用 Go 和 ImageMagick 提取图像的主要颜色

来源:stackoverflow

时间:2024-03-10 23:21:17 217浏览 收藏

目前golang学习网上已经有很多关于Golang的文章了,自己在初次阅读这些文章中,也见识到了很多学习思路;那么本文《使用 Go 和 ImageMagick 提取图像的主要颜色》,也希望能帮助到大家,如果阅读完后真的对你学习Golang有帮助,欢迎动动手指,评论留言并分享~

问题内容

我想从 png、jpeg、svg 等中提取主色。 我尝试过这段代码,但有时生成的调色板不正确。

// GET image colors
    mw.QuantizeImage(5, mw.GetImageColorspace(), 0, imagick.DITHER_METHOD_NO, false)
    _, allColors := mw.GetImageHistogram()

    for i, c := range allColors {
        if i > 4 {
            break
        }
        h, s, l := c.GetHSL()

        // "github.com/lucasb-eyer/go-colorful"
        cf := colorful.Hsl(h*360, s, l)

        result = append(result, cf.Hex())
    }

提取主色的最佳方法是什么?


解决方案


您想要迭代所有颜色项并调用 (*pixelwand)getcolorcount 来确定频率。

mw.QuantizeImage(5, mw.GetImageColorspace(), 0, imagick.DITHER_METHOD_NO, false)
_, allColors := mw.GetImageHistogram()
var (
    mostUsedColor *PixelWand
    mostUsedCount uint
)
for _, c := range allColors {
    count := c.GetColorCount()
    if count > mostUsedCount {
        mostUsedColor = c
        mostUsedCount = count
    }
}

今天带大家了解了的相关知识,希望对你有所帮助;关于Golang的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>