« Code for CatTimeLapse Extending WebCam | Main | First Video Blog »

Problems with Creating a Window

My first problem with this assignment was I didn't realize how difficult it was going to be to figure out how to play a quicktime movie. After some suggestions from others, I checked out the QTJava api and did a google search to find sample code. I found some stuff:

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.File;
import quicktime.*;
import quicktime.app.*;
import quicktime.app.players.*;
import quicktime.app.display.*;
import quicktime.io.*;
import quicktime.std.*;
import quicktime.std.movies.*;


public class Window extends Frame{

Movie movie;

public Window (String title) {
super (title);
try {
QTSession.open();
FileDialog fd = new FileDialog (this,"comlab.mov",FileDialog.LOAD);
fd.show();
if (fd.getFile() == null)
return;

// get movie from file
File f = new File (fd.getDirectory(), fd.getFile());
OpenMovieFile omFile =
OpenMovieFile.asRead (new QTFile (f));
movie = Movie.fromFile (omFile);


MoviePlayer player = new MoviePlayer (movie);
QTCanvas canvas = new QTCanvas();
canvas.setClient (player, true);
add (canvas);


addWindowListener (new WindowAdapter() {
public void windowClosing (WindowEvent e) {
QTSession.close();
System.exit(0);
}
});
} catch (Exception e) {
e.printStackTrace();
}
}

public static void main (String[] args) {

Window frame = new Window ("Cat's Window");
frame.pack();
frame.setVisible(true);
try {
frame.movie.start();
} catch (Exception e) {
e.printStackTrace();
}
}
and it worked, after a little while, much to my surprise.

Then I created a new class within my project to utilize "FindSkin" because I realized that I could not extend two classes.

import java.awt.event.KeyEvent;
import java.awt.event.MouseEvent;

public class WindowSkin extends PixelOperator {
int[] backgroundPixelArray;

float redLower = .35f;

float redUpper = .55f;

float greenLower = .26f;

float greenUpper = .35f;

WindowSkin() {
super();
setTitle("FindSkin");

}

public static void main(String[] args) {
WindowSkin fs = new WindowSkin();
ws.startVideo();
}

public void performPixelOp(int _x, int _y) {

int[] rgb = ps.getPixel(_x, _y);
float total = rgb[1] + rgb[2] + rgb[3];
float normalizedRed = rgb[1] / total;
float normalizedGreen = rgb[2] / total;
if (normalizedRed < redUpper && normalizedRed > redLower && normalizedGreen < greenUpper && normalizedGreen > greenLower) {

ps.setPixel(_x, _y, 255, 0, 0, 0);
}
}

public void keyPressed(KeyEvent keyEvent) {
String keyString = KeyEvent.getKeyText(keyEvent.getKeyCode()); // change

if (keyString.equals("Up")) { // use arrow keys to adjust a
redUpper = redUpper + .01f;
redLower = redLower + .01f;
} else if (keyString.equals("Down")) {
redUpper = redUpper - .01f;
redLower = redLower - .01f;
} else if (keyString.equals("Right")) { // use arrow keys to adjust a
greenUpper = greenUpper + .01f;
greenLower = greenLower + .01f; // variable
} else if (keyString.equals("Left")) {
greenUpper = greenUpper - .01f;
greenLower = greenLower - .01f;
} else {
super.keyPressed(keyEvent);
}
}

}

The problem came when I tried to combine functionality together. I will post the code I was working with in my next post.

TrackBack

TrackBack URL for this entry:
http://www.catmindeye.com/mt/mt-tb.cgi/25

Post a comment

(If you haven't left a comment here before, you may need to be approved by the site owner before your comment will appear. Until then, it won't appear on the entry. Thanks for waiting.)