Webcam Livebild wie Spiegelbild anzeigen

dige

Neues Mitglied
Hallo zusammen

Ich habe ein Problem bei dem ich nicht weiterkomme.

Ich benutze JMF 2.1.1 um meine Webcam anzusprechen und ein Livebild
auf einem Panel anzuzeigen. Funktioniert soweit auch super, nur das ich das Bild
gern wie als Spiegel anzeigen will, d.h. bewege ich meinen Kopf nach links soll sich mein
Kopf im angezeigten Webcam Bild ebenfalls nach links bewegen.

Momentan bewegt der Kopf in dem angezeigten Live-Bild nach rechts...

Meine Kamera spreche ich über den herkömmlichen Weg an, etwa so:
Java:
...
CaptureDeviceInfo devInfo = CaptureDeviceManager.getDevice("vfw:Microsoft WDM Image Capture (Win32):0");
MediaLocator locator = devInfo.getLocator();
Player player = Manager.createRealizedPlayer(locator);
player.start();
player.getVisualComponent();
...

Habe schon fast alle APIs abgegrast, leider find ich keine Funktion/Einstellung etc
um das Bild als Spiegelbild anzuzeigen.

Danke für Eure Hilfe...

MfG
dige
 

tobi193

Aktives Mitglied
Ganz einfach:
Zunächst kannst du JMF gleich wieder deinstallieren, das ist bekanntlich tot.
DSJ ist ganz gut und erkennt bei mir die Webcam auch zuverlässiger. Gibt es hier: DirectShow Java Wrapper: humatic - dsj

Java:
import de.humatic.dsj.DSCapture;
import de.humatic.dsj.DSFilterInfo;
import de.humatic.dsj.DSFiltergraph;
import java.awt.image.BufferedImage;
import javax.swing.JFrame;
 
public class Webcam extends JFrame{
    
  private DSFilterInfo[][] dsFilterInfo;
  private DSCapture dscCapture[];
  private DSCapture dsc = null;

  public Webcam(){
    super("bla");
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    dsFilterInfo = DSCapture.queryDevices();
    dscCapture = new DSCapture[dsFilterInfo[0].length-1];
    dsc = new DSCapture(DSFiltergraph.D3D9, dsFilterInfo[0][0], false, DSFilterInfo.filterInfoForSystemProfile(2), null);
    dsc.flipImage(2);
    this.add(dsc.asComponent());
    this.setSize(400,400);
    this.setVisible(true);
  }

  public static void main(String[] args){
      new Webcam();
  }
}

Der Quellcode nimmt sich einfach die erste Webcam die angeschlossen ist und zeigt sie gespiegelt an.
Dafür sorgt
Java:
dsc.flipImage(2);
. Mit einer 1 im Parameter wird es vertikal gespiegelt.

Gruß
 

dige

Neues Mitglied
Hallo

Vielen Dank für den Tip mit DSJ.
Ich werde es mal ausprobieren.

Edit:
Habs ausprobiert und funktioniert super. Danke nochmals!

MfG
dige
 
Zuletzt bearbeitet:

Ähnliche Java Themen

Neue Themen


Oben