001package com.github.sarxos.webcam.ds.cgt;
002
003import java.awt.image.BufferedImage;
004
005import org.slf4j.Logger;
006import org.slf4j.LoggerFactory;
007
008import com.github.sarxos.webcam.WebcamDevice;
009import com.github.sarxos.webcam.WebcamDriver;
010import com.github.sarxos.webcam.WebcamTask;
011
012
013public class WebcamGetImageTask extends WebcamTask {
014
015        private static final Logger LOG = LoggerFactory.getLogger(WebcamGetImageTask.class);
016
017        private volatile BufferedImage image = null;
018
019        public WebcamGetImageTask(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}