# Webcam Livebild wie Spiegelbild anzeigen



## dige (1. Nov 2010)

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:

```
...
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 (6. Nov 2010)

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


```
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 
	
	
	
	





```
dsc.flipImage(2);
```
. Mit einer 1 im Parameter wird es vertikal gespiegelt.

Gruß


----------



## dige (8. Nov 2010)

Hallo 

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

Edit:
Habs ausprobiert und funktioniert super. Danke nochmals!

MfG
dige


----------

