f8g

IronRuby

ブロックもっと速くならないか

ループの中でブロックを使うと明らかに遅かったので測ってみた。 # Bitmapにイテレータ class System::Drawing::Bitmap def each x = 0 while x < self.width y = 0 while y < self.height yield GetPixel(x, y) y += 1 end x += 1 end end end 画像のサイズ…

モザイク

画像を分割して、そのブロックごとに色の平均出して描画するやつ。 class System::Drawing::Bitmap def mosaic(width, height) newImage = Drawing::Bitmap.new(self.width, self.height) column_size = (1*right - left) / width row_size = (1*down - top)…

フィルタ

3*3とか配列を決めてやって、中央のピクセルが周囲のやつで決まるやつ。 # ぼかす f = [ [0.1, 0.1, 0.1], [0.1, 0.2, 0.1], [0.1, 0.1, 0.1] ] # newPixel = pixel[-1][-1] * f[-1][-1] + pixel[0][-1] * f[0][-1] + pixel[1][-1] * f[1][-1] + # pixel[-1]…

濃度変換2

http://d.hatena.ne.jp/arikui/20070918/1190050541 変換する関数に送るのを、色単位じゃなくピクセル単位で送るともっと自由に出来る。(グラフ書くのは難しいけど) pixel = pictures[0].image.getPixel(x, y) pictures[1].image.setPixel(x, y, f(pixel))…