濃度変換2
http://d.hatena.ne.jp/arikui/20070918/1190050541
変換する関数に送るのを、色単位じゃなくピクセル単位で送るともっと自由に出来る。(グラフ書くのは難しいけど)
pixel = pictures[0].image.getPixel(x, y) pictures[1].image.setPixel(x, y, f(pixel))
たとえばこんなの。
def f(pxl) pr = 1 * pxl.r pg = 1 * pxl.g pb = 1 * pxl.b _r = (pr > 128)? (pr > 192)? 255 : 192: (pr > 64)? 64 : 0 _g = (pg > 128)? (pg > 192)? 255 : 192: (pg > 64)? 64 : 0 _b = (pb > 128)? (pb > 192)? 255 : 192: (pb > 64)? 64 : 0 min = (pr < pg)? (pr < pb)? pr : pb: (pg < pb)? pg : pb r = (pr == min)? _r : pr g = (pg == min)? _g : pg b = (pb == min)? _b : pb Drawing::Color::fromArgb(r, g, b) end
Rubyのメソッド使うと遅かったので、ちょっと汚いけどループの中で使うにはこうした方が速いみたい。
単純な処理だけど、色々弄れるから楽しい。
Tumblrも画像集めるだけじゃなくて、一度なんかのフィルタ通してからアップロードしたほうが楽しいかもしれない。