JMF og drawString();
Kære eksperter, nu har jeg surfet nettet tør for eksempler, og kan ikke finde en brugbar løsning. Jeg har en lille kode som viser webcam, og som kan fortælle hvilken RGB-værdi en given pixel har, direkte på webcammet. Problemet er bare, at jeg også gerne vil tegne på webcammet, f.eks. med drawString, eller tegne nogle linjer. Har følgende kode:import javax.media.Player;
import javax.media.CaptureDeviceInfo;
import javax.media.MediaLocator;
import javax.media.Manager;
import javax.media.Buffer;
import javax.media.format.*;
import javax.media.util.*;
import javax.media.control.*;
import java.awt.image.*;
import java.awt.*;
import javax.swing.*;
public class Webcam{
private CaptureDeviceInfo device;
private Player player;
private Component videoScreen;
private Buffer buf = null;
private Image img = null;
private BufferToImage btoi = null;
public void Webcam(){
try{
player = Manager.createRealizedPlayer(new MediaLocator("vfw://0"));
player.start();
videoScreen = player.getVisualComponent();
Frame frm = new Frame();
frm.setBounds(10,10,300,300);
frm.add(videoScreen);
frm.setVisible(true);
FrameGrabbingControl fgc = (FrameGrabbingControl)player.getControl("javax.media.control.FrameGrabbingControl");
buf = fgc.grabFrame();
Thread.sleep(5000);
for(int i = 0; i<10000;i++){
buf = fgc.grabFrame();
btoi = new BufferToImage((VideoFormat)buf.getFormat());
img = btoi.createImage(buf);
BufferedImage image = (BufferedImage)btoi.createImage(buf);
System.out.println(new Color(image.getRGB(150,150)).getRed()+","+new Color(image.getRGB(150,150)).getBlue()+","+new Color(image.getRGB(150,150)).getGreen());
}
player.close();
player.deallocate();
}catch(Exception e){
System.out.println(e);
}
}
}
Hvad gør man? Kan ikke finde nogle løsninger der virker.
