C
Conehead
Gast
Hallo.
Ich weiß nicht ganz, wie ich diesen Thread hier nennen soll, daher versuch ich einfach mal kurz zu erklären was ich vorhabe.
Ich habe 2 Panels untereinander. Oben soll ein Bild angezeigt werden, welches ich von der Webcam abgreife.
Darunter möchte ich das selbe Panel haben, nur dass noch etwas extra auf das Bild gezeichnet wird.
(Habe einfach ein paar rosa Punkte ins Bild gemalt)
Mein Problem liegt jetzt daran, dass wenn ich das Bild bearbeite, jedoch beide Bilder bearbeitet wurden.
Also sind meine Punkte im Panel oben und unten, obwohl sie nur unten sein sollten.
Hier mal ein kleine Bild dazu:
Hier noch etwas Quelltext:
Das komisch ist ja, dass ich am Ende der ersten Funktion folgendes aufrufe:
imgpanel.setImage(createdImage);
convertImageToMap(gui,createdImage);
Also wird dem Panel auf dem das Bild gezeichnet werden soll, erst das Bild übergeben...und erst DANN wird das Bild übergeben und bearbeitet und neu gespeichert.
Hoffe ihr könnt mir helfen, ich bin so langsam am Verzweifeln und vorher möchte ich auch noch nicht weiterarbeiten.
MfG
conehead
Ich weiß nicht ganz, wie ich diesen Thread hier nennen soll, daher versuch ich einfach mal kurz zu erklären was ich vorhabe.
Ich habe 2 Panels untereinander. Oben soll ein Bild angezeigt werden, welches ich von der Webcam abgreife.
Darunter möchte ich das selbe Panel haben, nur dass noch etwas extra auf das Bild gezeichnet wird.
(Habe einfach ein paar rosa Punkte ins Bild gemalt)
Mein Problem liegt jetzt daran, dass wenn ich das Bild bearbeite, jedoch beide Bilder bearbeitet wurden.
Also sind meine Punkte im Panel oben und unten, obwohl sie nur unten sein sollten.
Hier mal ein kleine Bild dazu:
Hier noch etwas Quelltext:
Java:
public void getScreenshotFromCam(Gui gui) {
//aktuelles bild von der cam holen
ScreenPanel imgpanel = gui.getCurrentScreenPanel();
Player player = gui.getActiveCam();
if(player != null){
FrameGrabbingControl fgc = (FrameGrabbingControl) player
.getControl("javax.media.control.FrameGrabbingControl");
//im buffer speichern und in Image konvertieren
buf = fgc.grabFrame();
btoi = new BufferToImage((VideoFormat) buf.getFormat());
createdImage = btoi.createImage(buf);
//oberen panel bild hinzufügen
imgpanel.setImage(createdImage);
//bild an funktion für unteres panel weitergeben
convertImageToMap(gui,createdImage);
}
}
public void convertImageToMap(Gui gui, Image srcImg){
//unteres panel auslesen
ScreenPanel imgpanel2 = gui.getCurrentSolutionPanel();
//als bufferedimage
BufferedImage img = (BufferedImage) srcImg;
//punkte zeichnen
img.setRGB(30, 30,16711780);
img.setRGB(31, 31,16711780);
img.setRGB(32, 32,16711780);
img.setRGB(33, 33,16711780);
//das bild zum schluss zeichnen
imgpanel2.setImage(img);
}
Das komisch ist ja, dass ich am Ende der ersten Funktion folgendes aufrufe:
imgpanel.setImage(createdImage);
convertImageToMap(gui,createdImage);
Also wird dem Panel auf dem das Bild gezeichnet werden soll, erst das Bild übergeben...und erst DANN wird das Bild übergeben und bearbeitet und neu gespeichert.
Hoffe ihr könnt mir helfen, ich bin so langsam am Verzweifeln und vorher möchte ich auch noch nicht weiterarbeiten.
MfG
conehead