Obraz z kamery

0

Chciałbym przechwycić obraz z mojej lokalnej kamery internetowej w zwykłej aplikacji Java (klasa rozszerza JFrame). W jaki sposób mogę to zrobić ?

0

nie dam głowy że to załatwi problem ale zobacz sobie Java Media Framework - http://java.sun.com/javase/technologies/desktop/media/jmf/

0

właśnie do tego doszedłem ;p poczytam i dam znac

================================================================
tak więc udało się napisać Helloworld aplikację pokazującą na formatce obraz przechwycony z mojej kamerki internetowej, caly kod ponizej

import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import java.io.IOException;
import java.util.Vector;

import javax.media.CannotRealizeException;
import javax.media.CaptureDeviceInfo;
import javax.media.CaptureDeviceManager;
import javax.media.Manager;
import javax.media.NoDataSourceException;
import javax.media.NoPlayerException;
import javax.media.Player;
import javax.media.format.VideoFormat;
import javax.media.protocol.DataSource;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class Main extends JFrame {
	
	private Player player = null;

	public Main() {
		
		Vector devices = CaptureDeviceManager.getDeviceList( new VideoFormat( VideoFormat.RGB ) );
		
		CaptureDeviceInfo deviceInfo = (CaptureDeviceInfo)devices.firstElement();
		
		DataSource dataSource = null;
		
		try {
			dataSource = Manager.createDataSource(deviceInfo.getLocator());
		}
		catch ( NoDataSourceException e ) {
			e.printStackTrace();
		}
		catch ( IOException e ) {
			e.printStackTrace();
		}
		
		try {
			player = Manager.createRealizedPlayer( dataSource );
		}
		catch ( NoPlayerException e ) {
			e.printStackTrace();
		}
		catch ( CannotRealizeException e ) {
			e.printStackTrace();
		}
		catch ( IOException e ) {
			e.printStackTrace();
		}
		
		player.start();
		
		JPanel mainPanel = new JPanel();
		mainPanel.add( player.getVisualComponent() );
		
		getContentPane().add( mainPanel );
		
		addWindowListener( new WindowAdapter() {
			@Override
			public void windowClosing( WindowEvent e ) {
				player.close();
				super.windowClosing( e );
			}
		});
	}
	
	public static void main( String[] args ) {
		Main main = new Main();
		main.setDefaultCloseOperation( EXIT_ON_CLOSE );
		main.setBounds( 400, 200, 400, 400 );
		main.setVisible( true );
	}
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1