001 package com.github.sarxos.webcam.ds.cgt;
002
003 import java.awt.image.BufferedImage;
004
005 import org.slf4j.Logger;
006 import org.slf4j.LoggerFactory;
007
008 import com.github.sarxos.webcam.WebcamDevice;
009 import com.github.sarxos.webcam.WebcamDriver;
010 import com.github.sarxos.webcam.WebcamTask;
011
012
013 public class WebcamReadImageTask extends WebcamTask {
014
015 private static final Logger LOG = LoggerFactory.getLogger(WebcamReadImageTask.class);
016
017 private volatile BufferedImage image = null;
018
019 public WebcamReadImageTask(WebcamDriver driver, WebcamDevice device) {
020 super(driver, device);
021 }
022
023 public BufferedImage getImage() {
024
025 try {
026 process();
027 } catch (InterruptedException e) {
028 LOG.debug("Interrupted exception", e);
029 return null;
030 }
031
032 return image;
033 }
034
035 @Override
036 protected void handle() {
037
038 WebcamDevice device = getDevice();
039 if (!device.isOpen()) {
040 return;
041 }
042
043 image = device.getImage();
044 }
045 }