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    }