topical media & game development

talk show tell print

graphic-processing-site-examples-Libraries-Video--Capture--SlitScan-SlitScan.pde / pde



  
Simple Real-Time Slit-Scan Program. By Golan Levin. This demonstration depends on the canvas height being equal to the video capture height. If you would prefer otherwise, consider using the image copy() function rather than the direct pixel-accessing approach I have used here. Created December 2006. Updated June 2007 by fry.

  
  import processing.video.*;
  
  Capture video;
  
  int videoSliceX;
  int drawPositionX;
  
  void setup() {
    size(600, 240);
    
    // Uses the default video input, see the reference if this causes an error
    video = new Capture(this, 320, 240, 30);
    
    videoSliceX = video.width / 2;
    drawPositionX = width - 1;
    background(0);
  }
  
  void draw() {
    if (video.available()) {
      video.read();
      video.loadPixels();
      
      // Copy a column of pixels from the middle of the video 
      // To a location moving slowly across the canvas.
      loadPixels();
      for (int y = 0; y < video.height; y++){
        int setPixelIndex = y*width + drawPositionX;
        int getPixelIndex = y*video.width  + videoSliceX;
        pixels[setPixelIndex] = video.pixels[getPixelIndex];
      }
      updatePixels();
      
      drawPositionX--;
      // Wrap the position back to the beginning if necessary.
      if (drawPositionX < 0) {
        drawPositionX = width - 1;
      }
    }
  }
  


(C) Æliens 20/2/2008

You may not copy or print any of this material without explicit permission of the author or the publisher. In case of other copyright issues, contact the author.