이미지를 실시간으로 회색조로 만드는 프로그램
Image#map_pixels
를 사용해 썼다. 이런 것은 RubyKokuban이 잘하고 있다.def setup
set_window_size(520, 420)
set_background(Color::Linen)
@image = Image.load("red-flower.jpg")
@rate = 0.0
@frame = 0
@image_gray = gray(@image, @rate)
end
def update
@frame += 1
@rate += 0.003
@rate -= 1.0 if @rate > 1.0
@image_gray = gray(@image, @rate) if @frame % 10 == 0
# @sequence_shot = SequenceShot.new(10, 40) unless @sequence_shot
# @sequence_shot.update
end
def draw
x = 10; y = 30
set_color(Color::White)
@image_gray.draw(x, y, @image_gray.width * 2.5, @image_gray.height * 2.5)
# debug info
set_color(0, 0, 0)
# text(DebugInfo.fps, 10, 15)
text("gray rate: #{@rate}", 10, 15)
end
# ----------------------------------------------------------
def gray(image, rate)
image.map_pixels do |x, y|
c = image.color(x, y)
b = c.brightness
Color.new(c.r * (1.0 - rate) + b * rate,
c.g * (1.0 - rate) + b * rate,
c.b * (1.0 - rate) + b * rate,
c.a)
end
end
gif 애니메이션을 만드는 방법
# @sequence_shot = SequenceShot.new(10, 40) unless @sequence_shot
# @sequence_shot.update
을 코멘트 아웃을 제외하고 실행하면
sequence_shot_xxx.png
라는 이름으로 연속 이미지가 만들어진다.그런 다음 ImageMagick을 사용하여gif 애니메이션으로 변환합니다.
$ convert -layers optimize -loop 0 -delay 36 sequence_shot_*.png gray_anim.gif
Reference
이 문제에 관하여(이미지를 실시간으로 회색조로 만드는 프로그램), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ongaeshi/items/5eeeb0888b1ca853dec0텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)