Page 196 - The Definitive Guide to Building Java Robots
P. 196

Preston_5564C06.fm  Page 177  Friday, September 23, 2005  5:13 AM



                                                                                   CHAPTER 6  ■  VISION  177



                                player = Manager.createRealizedPlayer( new MediaLocator(url));
                                player.start();
                                // Wait a few seconds for camera to initialize (otherwise img==null)
                                Thread.sleep(2500);
                            }

                            public Image getAwtImage() throws Exception {
                                FrameGrabbingControl frameGrabber = (FrameGrabbingControl) player
                                        .getControl("javax.media.control.FrameGrabbingControl");
                                Buffer buf = frameGrabber.grabFrame();
                                Image img = (new BufferToImage((VideoFormat) buf.getFormat())
                                        .createImage(buf));

                                if (img == null) {
                                    //throw new Exception("Image Null");
                                    System.exit(1);
                                }

                                return img;
                            }

                            public BufferedImage getBufferedImage() throws Exception {
                                return (BufferedImage) getAwtImage();
                            }


                            public void close() throws Exception {
                                player.close();
                                player.deallocate();
                            }

                            public static void main(String[] args) {
                                try {
                                    GetFrame getFrame = new GetFrame("vfw://0");
                                    BufferedImage img = getFrame.getBufferedImage();
                                    getFrame.close();
                                    ImageViewer viewer = new ImageViewer(img);
                                } catch (Exception e) {
                                    e.printStackTrace();
                                    System.exit(0);
                                }
                            }
                        }
   191   192   193   194   195   196   197   198   199   200   201