How to take single snapshots from a webcam?

2019-01-28 21:00发布

问题:

I want to take a snapshot with my webcam using java and save it to a jpg file. What are the steps needed to do so? A tutorial would be greatly appreciated.

Greetings,
Burkhard

回答1:

the JMF (Java Media Framework) is a good starting point. However, I did not succeed with it.

I finally found the solution here.

The important part being:

Buffer buf = frameGrabber.grabFrame();
// Convert frame to an buffered image so it can be processed and saved
Image img = (new BufferToImage((VideoFormat) buf.getFormat()).createImage(buf));
buffImg = new BufferedImage(img.getWidth(this), img.getHeight(this), BufferedImage.TYPE_INT_RGB);
//TODO saving the buffImg


回答2:

what you are looking for might be the Java Media Framework (JMF). See the Sun Tutorial. I hope that helps.



回答3:

I prefer using JMyron instead of JMF. JMyron is easy to use for accessing webcam. To save the captured image you just need to save the BufferedImage using ImageIO.write(); this blog post How To Use Webcam Using Javais usefull to start using JMyron.



回答4:

Try webcam-capture project.

This code will take a snapshot from webcam (embedded, connected to USB or IP camera) and save it into JPG file:

Webcam webcam = Webcam.getDefault();
webcam.open()
BufferedImage image = webcam.getImage();
ImageIO.write(image, "JPG", new File("test.jpg"));