Mousekoordinaten und Bildschirm?

Status
Nicht offen für weitere Antworten.

Math55

Bekanntes Mitglied
hallo, ich möchte ein programm schreiben, welches screenshits von mit der maus ausgewählten bereichen des bildschirm macht. jetzt habe ich also auf mousereleased "gehört" und lasse mir jeweils 2 mal die koordinaten wiedergeben, also jeweils beim loslassen der mouse. das sind dann zum beispiel:


x1=600
y1=250
x2=700
y2=300
width=x1-x2
height=y1-y2

so, dann wollte ich nen screenshot machen mit

Code:
try {
        Robot robot = new Robot();
    
        
        int x = 100;
        int y = 100;
        int width = 200;
        int height = 200;
        Rectangle area = new Rectangle(x, y, width, height);
        BufferedImage bufferedImage = robot.createScreenCapture(area);
    
        
    } catch (AWTException e) {
    }

allerdings ist das bild dann viel kleiner. da muss man doch die koordinaten noch umrechne, oder?

danke!!🙂
 
Math55 hat gesagt.:
hallo, ich möchte ein programm schreiben, welches screenshits von mit der maus ausgewählten bereichen des bildschirm macht. jetzt habe ich also auf mousereleased "gehört" und lasse mir jeweils 2 mal die koordinaten wiedergeben, also jeweils beim loslassen der mouse. das sind dann zum beispiel:


x1=600
y1=250
x2=700
y2=300
width=x1-x2
height=y1-y2

x1 und y1 sind die Koordinaten die du beim ersten Mausklick kriegst oder? Dann ziehst du dein Rechteck und lässt auf x2 und y2 los ?

Müsstest du nicht noch sicherstellen das width/height > 0 sind? Es kann ja sein das jemand rechts unten anfängt und nach links oben geht oder andersrum , so dass du u.U. was negatives rauskriegst und er mit ner "IllegalArgumentException" schließt.

Code:
try {
        Robot robot = new Robot();
    
        
        int x = 100;
        int y = 100;
        int width = 200;
        int height = 200;
        Rectangle area = new Rectangle(x, y, width, height);
        BufferedImage bufferedImage = robot.createScreenCapture(area);
    
        
    } catch (AWTException e) {
    }

Soweit ich das sehe stimmt der Code prinzipiell, hast du mal testweise deine Auflösung eingegeben (also Höhe = ... Breite = .... und x,y in die linke obere Ecke) ?


Ansonsten, vielleicht hilft das noch:
http://javaalmanac.com/egs/javax.swing/screen_ScreenCapture.html
 
misst jetzt gehts doch nicht. enn man nämlich das fenster der anwendung verschiebt und dann den screenshot macht, stimmen die koordinaten überhaupt nicht. dann ist x nämlich negativ. warum das denn? nimmer etwas die linke obere ecke der anwendung als 0,0?

DANKE!!
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben