gpt4 book ai didi

ruby - 如何修改图像的颜色以消除活力?

转载 作者:数据小太阳 更新时间:2023-10-29 06:54:59 25 4
gpt4 key购买 nike

我如何改变颜色:

enter image description here

进入这个:

enter image description here

我使用 Gimp 生成输出图像,输入图像作为第一层,图像的背景色作为第二层,在图层面板中我选择模式“颜色”

我想保留背景色,但希望颜色为棕色。

有没有用 ChunkyPNG 做这个的想法?或者我应该将 ImageMagick 与颜色查找表一起使用吗?

最佳答案

感谢您的想法。

我发现 Linuxios 中的那个最有帮助 Gimp layer modes

require "json"
require "httpclient"
require "chunky_png"

module ChunkyPNG::Color

def h(value)
r,g,b = r(value).to_f / MAX, g(value).to_f / MAX, b(value).to_f / MAX
min, max = [r,g,b].minmax

return 0 if max == min

result = case max
when r then (g - b) / (max - min) + (g < b ? 6 : 0)
when g then (b - r) / (max - min) + 2
when b then (r - g) / (max - min) + 4
end

result * 60
end

def s(value)
min, max = [r(value), g(value), b(value)].minmax.map { |value| value.to_f / MAX }
max == 0 ? 0 : (max - min) / max
end

def v(value)
[r(value), g(value), b(value)].max.to_f / MAX
end

def hsv(h, s, v)
h = h.to_f / 360
i = (h * 6).floor
f = h * 6 - i
p = v * (1 - s)
q = v * (1 - f * s)
t = v * (1 - (1 - f) * s)

case i % 6
when 0 then r, g, b = v, t, p
when 1 then r, g, b = q, v, p
when 2 then r, g, b = p, v, t
when 3 then r, g, b = p, q, v
when 4 then r, g, b = t, p, v
when 5 then r, g, b = v, p, q
end

rgb *[r,g,b].map {|value| (value * 255).round }
end

end


module CoderWall

module_function

def badges(username)
url = URI.escape("https://coderwall.com/#{username}.json")
response = HTTPClient.get(url)

json = JSON.parse(response.body)
urls = json['badges'].map {|b| b['badge']}
brown = ChunkyPNG::Color.from_hex("#bf8a30")
hue = ChunkyPNG::Color.h(brown)
saturation = ChunkyPNG::Color.s(brown)
value = ChunkyPNG::Color.v(brown)
urls.each do |url|
matches = url.match /(\w+)\-/
response = HTTPClient.get(url)
filename = "./tmp/coderwall/"+matches[1]+".png"
File.open(filename,"w") {|f| f.write(response.body)}

image = ChunkyPNG::Image.from_file(filename)

image.pixels.map! do |pixel|
v = ChunkyPNG::Color.v(pixel)
unless ChunkyPNG::Color.a(pixel) > 0
v = value
end
ChunkyPNG::Color.hsv(hue,saturation, v)
end
image.save(filename.gsub(/\.png/,"_brown.png"), :fast_rgba)
end
end
end

badges = CoderWall.badges("astropanic")

上面的代码来自网络上的一些片段。

这是结果:Stop doing new year resolutions. Make the change now !

关于ruby - 如何修改图像的颜色以消除活力?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13957918/

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