public void draw() { if (cam.available() == true) { cam.read(); pushMatrix(); scale(-1, 1); translate(-cam.width, 0); image(cam, 0, 0); popMatrix(); // image(cam, 0,0); try { // Now test to see if it has a QR code embedded in it LuminanceSource source = new BufferedImageLuminanceSource((BufferedImage) cam.getImage()); BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(source)); Result result = reader.decode(bitmap); // Once we get the results, we can do some display if (result.getText() != null) { println(result.getText()); ResultPoint[] points = result.getResultPoints(); // Draw some ellipses on at the control points for (int i = 0; i < points.length; i++) { // fill(#ff8c00); ellipse(points[i].getX(), points[i].getY(), 20, 20); // fill(#ff0000); text(i, points[i].getX(), points[i].getY()); } // Now fetch the book cover, if it is found if (!result.getText().equals(lastISBNAcquired)) { String url = "http://covers.oreilly.com/images/" + result.getText() + "/cat.gif"; try { cover = loadImage(url, "gif"); lastISBNAcquired = result.getText(); } catch (Exception e) { cover = null; } } // Superimpose the cover on the image if (cover != null) { image(cover, points[1].getX(), points[1].getY()); } } } catch (Exception e) { // println(e.toString()); } } }
public void setup() { size(640, 480); PFont metaBold; // The font "Meta-Bold.vlw" must be located in the // current sketch's "data" directory to load successfully metaBold = loadFont("SansSerif-48.vlw"); textFont(metaBold, 36); cam = new Capture(this, WIDTH, HEIGHT); cam.start(); }