gpt4 book ai didi

minimagick - 检索给定像素颜色的十六进制代码

转载 作者:行者123 更新时间:2023-12-04 22:35:03 24 4
gpt4 key购买 nike

我已经使用 resize_to_fill 缩小到 [1,1] 大小,从而将图像减少到一个像素,包含基本上整个图像的平均颜色(当然,前提是图像的高度和宽度之间没有巨大的差异) .
现在我试图以十六进制格式检索这个单个像素的颜色。

在终端窗口中,我可以像这样运行 convert 命令:

convert image.png txt:
# ImageMagick pixel enumeration: 1,1,255,rgb
0,0: (154,135,116) #9A8774 rgb(154,135,116)

但是,我不确定如何在图像所属模型的 before_save 部分期间从应用程序内部运行此命令。
图像使用carrierwave上传和附加

到目前为止,我已经检索到图像:
image = MiniMagick::Image.read(File.open(self.image.path))

但我不太确定如何从这里开始。

最佳答案

你可以像这样添加一个 pixel_at 方法:

module MiniMagick
class Image
def pixel_at(x, y)
case run_command("convert", "#{escaped_path}[1x1+#{x}+#{y}]", "-depth 8", "txt:").split("\n")[1]
when /^0,0:.*(#[\da-fA-F]{6}).*$/ then $1
else nil
end
end
end
end

然后像这样使用它:
i = MiniMagick::Image.open("/path/to/image.png")
puts i.pixel_at(100, 100)

输出:
#34555B

关于minimagick - 检索给定像素颜色的十六进制代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8894194/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com