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 }