Manipulate Video Capture in JRubyArt
Daniel Shiffman has recently published the second edition of his Learning Processing book updated for processing-3.0. He has also published the code here. This a port of his Manipulate video image sketch, which makes use of JRubyArt control panel to manipulate the video image. Show your ruby chops by porting some more examples…
And send me a tweet @monkstoneT
Here is the sketch code:-
# Learning Processing
# Daniel Shiffman
# https://www.learningprocessing.com
# Example 16-2: Manipulate video image
# Import the video library (and for JRubyArt control_panel and video_event).
load_libraries :control_panel, :video, :video_event
include_package 'processing.video'
# Variable for capture device
attr_reader :angle, :blue, :green, :hide, :high, :panel, :red, :video, :wide
def setup
sketch_title 'Manipulate Capture'
@video = Capture.new(self, 320, 240)
# Start capturing the images from the camera
video.start
control_panel do |c|
c.title = 'Control Panel'
c.look_feel 'Nimbus'
c.slider :red, 0..255, 255
c.slider :blue, 0..255, 255
c.slider :green, 0..255, 255
c.slider :angle, -PI..PI, 0
c.slider :wide, 0..320, 320
c.slider :high, 0..240, 240
@panel = c
end
end
def draw
background(255)
# only make control_panel visible once, or again when hide is false
unless hide
@hide = true
panel.set_visible(hide)
end
# Tinting using sliders
tint(red, green, blue)
# A video image can also be moved, rotated, tinted, resized just as with a PImage.
translate(width / 2, height / 2)
image_mode(CENTER)
rotate(angle) # angle from slider
image(video, 0, 0, wide, high) # width and height from slider
end
# This is a 'java reflection' method in processing, so keep the camel-case
# and load the :video_event library (rpextras.jar) in JRubyArt to use.
def captureEvent(c)
c.read
end
def settings
size(320, 240)
end
I have also ported The Nature of Code to JRubyArt.