Hallo
ich habe eine Klasse, die sich immer ein Image von einer Camera holt. Klappt eigentlich auch alles, aber irgendwie meckert er immer bei einer bestimmten zeile. mir wurde gesagt,dass vllt die Methode, die sich das Image hold ein image zurückggibt, dass null ist.
Diese Klasse wird dann in meiner GUI-Klasse gestartet.
In eine bestimmten Zeile, da wo ich das Image in ein BufferedImage mache, gibt er mir jedoch ne NullPointerException. Ich weiß aber nicht warum. Vielleicht weiß einer von euch warum....
Ich hoffe auf Hilfe. LG
Methode , von der ich ein Image kriegen soll
GUI-Klasse:
ich habe eine Klasse, die sich immer ein Image von einer Camera holt. Klappt eigentlich auch alles, aber irgendwie meckert er immer bei einer bestimmten zeile. mir wurde gesagt,dass vllt die Methode, die sich das Image hold ein image zurückggibt, dass null ist.
Diese Klasse wird dann in meiner GUI-Klasse gestartet.
In eine bestimmten Zeile, da wo ich das Image in ein BufferedImage mache, gibt er mir jedoch ne NullPointerException. Ich weiß aber nicht warum. Vielleicht weiß einer von euch warum....
Ich hoffe auf Hilfe. LG
Methode , von der ich ein Image kriegen soll
Java:
public Image getImage()
{
String mlcoation = "vfw:Micrsoft WDM Image Capture (Win32):0";
FrameGrabbingControl fgc = (FrameGrabbingControl) _player
.getControl("javax.media.control.FrameGrabbingControl");
buffer = fgc.grabFrame();
btoi = new BufferToImage((VideoFormat) buffer.getFormat());
img = btoi.createImage(buffer);
return img;
}
GUI-Klasse:
Java:
@Override
public void paint(Graphics g)
{
//Hier soll das Image zu einem BufferedImage gemacht werden.
super.paint(g);
Image img = myGrabber.getImage();
Label myLabel = new Label();
int width = img.getWidth(myLabel); // Hier kommt auch eine Nullpointer Exception
int height = img.getHeight(myLabel);
BufferedImage pImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
pImage.getGraphics().drawImage(img, 0, 0, myLabel);
g.drawImage(pImage, 290,120,this);
}
@Override
public void run()
{
Image tempImage;
Label tempLabel = new Label();
Quadrat tempQuadrat;
while(true)
{
myGrabber.start(); //Das hier macht er aber. Es wird
//druchgehen in der GUI ein Bild angezeigt.
repaint();
if(ausloeser)
{
tempImage = myGrabber.getImage();
int width = img.getWidth(myLabel); //Hier kommt die Fehlermeldung
int height = img.getHeight(myLabel);
BufferedImage pImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
pImage.getGraphics().drawImage(img, 0, 0, myLabel);
tempQuadrat = checkGebilde(pImage, position(pImage));
if(tempQuadrat.getA().getXWert() == bi.getWidth() && tempQuadrat.getA().getYWert() == bi.getHeight())
{
jTAkonsole.setText("Kein mögliches Viereck gefunden");
jTFgefunden.setBackground(Color.RED);
jTFA.setBackground(Color.RED);
}
else
{
Quadrat gefundenesQuadrat = checkGebilde(bi, tempQuadrat.getA());
jTAkonsole.setText("Mögliches Viereck gefunden");
jTFA.setText(gefundenesQuadrat.getA().getXWert()+"/"+gefundenesQuadrat.getA().getYWert());
jTFgefunden.setBackground(Color.GREEN);
}
}
}
}