これから色を変更する方法:
これに:
入力画像をレイヤー1、画像の背景色をレイヤー2として、Gimpを使用して出力画像を生成し、レイヤーパネルで「色」モードを選択しました
背景色を保持したいが、色は茶色の色合いにしたい.
ChunkyPNG でこれを行うアイデアはありますか? または、カラー ルックアップ テーブルで ImageMagick を使用する必要がありますか?
これから色を変更する方法:
これに:
入力画像をレイヤー1、画像の背景色をレイヤー2として、Gimpを使用して出力画像を生成し、レイヤーパネルで「色」モードを選択しました
背景色を保持したいが、色は茶色の色合いにしたい.
ChunkyPNG でこれを行うアイデアはありますか? または、カラー ルックアップ テーブルで ImageMagick を使用する必要がありますか?
アイデアをありがとう。
Linuxios のものが最も役立つGimp レイヤー モードであることがわかりました
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")
上記のコードは、Web で見つかったいくつかのスニペットから構成されています。
結果は次のとおりです。新年の抱負をやめる. 今すぐ変更してください!