title: capturing image from webcam using LTI-CIVIL library
body: <p>I am running cod eto capture the image using LTI-CIVIL library..</p>
  
  <p>This is Code...</p>
  
  <pre><code>public class TestWebCam implements CaptureObserver {
  
      JButton start = null;
      JButton shot = null;
      JButton stop = null;
      CaptureStream captureStream = null;
      boolean takeShot = false;
  
      public TestWebCam() {
          CaptureSystemFactory factory = DefaultCaptureSystemFactorySingleton.instance();
          CaptureSystem system;
          try {
              system = factory.createCaptureSystem();
              system.init();
              List list = system.getCaptureDeviceInfoList();
              int i = 0;
              if (i &lt; list.size()) {
                  CaptureDeviceInfo info = (CaptureDeviceInfo) list.get(i);
                  System.out.println((new StringBuilder()).append("Device ID ").append(i).append(": ").append(info.getDeviceID()).toString());
                  System.out.println((new StringBuilder()).append("Description ").append(i).append(": ").append(info.getDescription()).toString());
                  captureStream = system.openCaptureDeviceStream(info.getDeviceID());
                  captureStream.setObserver(TestWebCam.this);
              }
          } catch (CaptureException ex) {
              ex.printStackTrace();
          }
  //UI work of the program
          JFrame frame = new JFrame();
          frame.setSize(7000, 800);
          JPanel panel = new JPanel();
          frame.setContentPane(panel);
          frame.setVisible(true);
          frame.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
          start = new JButton("Start");
          stop = new JButton("Stop");
          shot = new JButton("Shot");
          panel.add(start);
          panel.add(stop);
          panel.add(shot);
          panel.revalidate();
          start.addActionListener(new ActionListener() {
  
              public void actionPerformed(ActionEvent e) {
                  try {
                      captureStream.start();
                  } catch (CaptureException ex) {
                      ex.printStackTrace();
  
                  }
              }
          });
          stop.addActionListener(new ActionListener() {
  
              public void actionPerformed(ActionEvent e) {
                  try {
                      captureStream.stop();
                  } catch (CaptureException ex) {
                      ex.printStackTrace();
                  }
              }
          });
          shot.addActionListener(new ActionListener() {
  
              public void actionPerformed(ActionEvent e) {
                  takeShot = true;
              }
          });
      }
  
      public void onNewImage(CaptureStream stream, Image image) {
  
          if (!takeShot) {
              return;
          }
          takeShot = false;
          System.out.println("New Image Captured");
          byte bytes[] = null;
          try {
              if (image == null) {
                  bytes = null;
                  return;
              }
              try {
                  ByteArrayOutputStream os = new ByteArrayOutputStream();
                  JPEGImageEncoder jpeg = JPEGCodec.createJPEGEncoder(os);
                  jpeg.encode(AWTImageConverter.toBufferedImage(image));
                  os.close();
                  bytes = os.toByteArray();
              } catch (IOException e) {
                  e.printStackTrace();
                  bytes = null;
              } catch (Throwable t) {
                  t.printStackTrace();
                  bytes = null;
              }
              if (bytes == null) {
                  return;
              }
              ByteArrayInputStream is = new ByteArrayInputStream(bytes);
              File file = new File("/img" + Calendar.getInstance().getTimeInMillis() + ".jpg");
              FileOutputStream fos = new FileOutputStream(file);
              fos.write(bytes);
              fos.close();
              BufferedImage myImage = ImageIO.read(file);
              shot.setText("");
              shot.setIcon(new ImageIcon(myImage));
              shot.revalidate();
          } catch (IOException ex) {
              ex.printStackTrace();
          }
      }
  
      public void onError(CaptureStream arg0, CaptureException arg1) {
          throw new UnsupportedOperationException("Error is coming ");
  
      }
  
      public static void main(String args[])
              throws Exception {
          TestWebCam test = new TestWebCam();
  
      }
  }
  </code></pre>
  
  <p>I am getting an Error...</p>
  
  <pre><code>com.lti.civil.CaptureException: java.lang.UnsatisfiedLinkError: no civil in java.library.path
          at com.lti.civil.impl.jni.NativeCaptureSystemFactory.createCaptureSystem(NativeCaptureSystemFactory.java:24)
          at attendance.TestWebCam.&lt;init&gt;(TestWebCam.java:51)
          at attendance.TestWebCam.main(TestWebCam.java:160)
  Caused by: java.lang.UnsatisfiedLinkError: no civil in java.library.path
          at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1860)
          at java.lang.Runtime.loadLibrary0(Runtime.java:845)
          at java.lang.System.loadLibrary(System.java:1084)
          at com.lti.civil.impl.jni.NativeCaptureSystemFactory.createCaptureSystem(NativeCaptureSystemFactory.java:21)
          ... 2 more
  </code></pre>