Programme java : capture image webCam [Fermé]

Signaler
Messages postés
4
Date d'inscription
dimanche 2 mars 2014
Statut
Membre
Dernière intervention
19 avril 2014
-
Nour Tarhouni
Messages postés
4
Date d'inscription
dimanche 2 mars 2014
Statut
Membre
Dernière intervention
19 avril 2014
-
Slm pouvez vous m'aider svp je veux un programme java (netbeans) qui permet de faire une capture image WebCam

2 réponses

Messages postés
815
Date d'inscription
jeudi 19 juillet 2007
Statut
Membre
Dernière intervention
3 février 2020
110
Salam,

Pour pouvoir faire des captures, la J2SE n'est pas suffisante, vous devez importer des bibliothèques externes et les utiliser.

Comment ajouter une bibliothèque à NetBeans :
http://www.youtube.com/watch?v=lWKaueqDyDk

Une API en Java pour capturer à partir du web cam :
http://webcamxtra.sourceforge.net/
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 87043 internautes nous ont dit merci ce mois-ci

Messages postés
4
Date d'inscription
dimanche 2 mars 2014
Statut
Membre
Dernière intervention
19 avril 2014

j'ai déjà ajouter la bibliothèque lti civil et j'ai trouvé un programme mais ca marche pas .

Voilà le programme :

import com.lti.civil.CaptureDeviceInfo;


import com.lti.civil.CaptureException;


import com.lti.civil.CaptureObserver;

import com.lti.civil.CaptureStream;

import com.lti.civil.CaptureSystem;

import com.lti.civil.CaptureSystemFactory;

import com.lti.civil.DefaultCaptureSystemFactorySingleton;

import com.lti.civil.Image;

import com.lti.civil.awt.AWTImageConverter;

import com.sun.image.codec.jpeg.JPEGCodec;

import com.sun.image.codec.jpeg.JPEGImageEncoder;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.image.BufferedImage;

import java.io.ByteArrayInputStream;

import java.io.ByteArrayOutputStream;

import java.io.File;

import java.io.FileOutputStream;

import java.io.IOException;

import java.util.Calendar;

import java.util.List;

import javax.imageio.ImageIO;

import javax.swing.ImageIcon;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JPanel;

import javax.swing.WindowConstants;

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 < 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();

}