Die Image-API stellt Klassen und Interfaces bereit, um
Bildschirmabbilder zu erstellen, Bilder in Dateien zu speichern oder zu aus
Dateien zu laden. Es können auch eigene Bildvergleiche durchgeführt werden.
Die Image-API ist so konzipiert, dass im Allgemeinen keine Exceptions geworfen
werden. Um dennoch auf mögliche Fehler eingehen zu können, werden Warnungen geloggt.
Um Bildschirmabbilder zu erstellen, können Sie die Jython-Klasse ImageWrapper aus dem
Modul imagewrapper.py verwenden. Dieses Modul wird mit dem
QF-Test Installationspaket mitgeliefert.
Hier sehen Sie ein kleines Jython Beispiel, um die Verwendung der Image-API
darzustellen:
from imagewrapper import ImageWrapper
#create ImageWrapper instance
iw = ImageWrapper(rc)
#take screenshot of the whole screen
currentScreenshot = iw.grabScreenshot()
#save screenshot to a file
iw.savePng("/tmp/screenshot.png", currentScreenshot)
Es folgt eine alphabetische Aufstellung aller Methoden der
ImageWrapper Klasse. Die verwendete Syntax ist ein
Gemisch aus Java und Python. Python unterstützt zwar selbst
keine statische Typisierung, die Parameter werden jedoch an Java
weitergereicht, so dass falsche Typen Exceptions auslösen können.
Folgt einem Parameter ein '='-Zeichen und ein Wert, ist dies der
Defaultwert des Parameters und eine Angabe beim Aufruf ist
optional.
ImageWrapper ImageWrapper(RunContext rc)
Konstruktor der ImageWrapper Klasse.
Parameter
rc
Der aktuell Runcontext von QF-Test.
int getMonitorCount()
Liefert die Anzahl aller Monitor zurück.
Rückgabewert
Die Anzahl der Monitore.
ImageRep grabImage(Object com, int x=None, int y=None, int width=None, int height=None)
Erstellt ein Bildschirmabbild einer spezifischen Komponente.
Wenn die Parameter x, y, with und height gesetzt werden,
dann wird ein Bildschirmabbild des beschriebenen
Teilbereiches der Komponente erstellt.
Parameter
com
Die QF-Test ID der Komponente.
x
Die X-Koordinate der linken oberen Ecke des Teilbereiches.
y
Die Y-Koordinate der linken oberen Ecke des Teilbereiches.
width
Die Breite des Teilbereiches.
height
Die Höhe des Teilbereiches.
Rückgabewert
Ein ImageRep Objekt, welches das aktuelle
Bildschirmabbild beinhaltet.
ImageRep grabScreenshot(int x=None, int y=None, int width=None, int height=None)
Erstellt ein Bildschirmabbild des gesamten Bildschirms.
Wenn die Parameter x, y, with und height gesetzt werden,
dann wird ein Bildschirmabbild des beschriebenen
Teilbereiches erstellt.
Parameter
x
Die X-Koordinate der linken oberen Ecke des Teilbereiches.
y
Die Y-Koordinate der linken oberen Ecke des Teilbereiches.
width
Die Breite des Teilbereiches.
height
Die Höhe des Teilbereiches.
Rückgabewert
Ein ImageRep Objekt, welches das aktuelle
Bildschirmabbild beinhaltet.
ImageRep grabScreenshotOfAllScreens()
Erstellt ein kombiniertes Bildschirmabbild aller vorhandenen Monitore.
Rückgabewert
Ein ImageRep-Objekt
ImageRep[] grabScreenshots(int monitor=None)
Erstellt Bildschirmabbilder aller vorhandenen Monitore. Diese Methode ist von
Nutzen, wenn Sie mehr als einen Monitor verwenden.
Wenn Sie ein Bildschirmabbild eines speziellen Monitors machen wollen, dann
können Sie das mit Hilfe des monitor Parameters.
Parameter
monitor
Index des Monitors. Der Index für den ersten ist 0, der für den zweiten 1 etc.
Rückgabewert
Ein Feld von ImageRep Objekten aller
Bildschirmabbilder oder das spezielle ImageRep Objekt, wenn der
monitor Parameter gesetzt wurde.
ImageRep loadPng(String filename)
Lädt ein Bild aus einer angegebenen Datei und liefert ein
ImageRep Objekt zurück. Die Datei muss im PNG
Format sein.
Parameter
filename
Die Datei, in der das Bild gespeichert ist.
Rückgabewert
Ein ImageRep Objekt, das das geladene Bild enthält.
void savePng(String filename, ImageRep image)
Speichert ein angegebenes ImageRep Objekt in eine
Datei. Das Bild wird PNG formatiert.
Parameter
filename
Der Pfad zu Zieldatei, wo das Bild gespeichert werden soll.
image
Das abzuspeichernde ImageRep Objekt.
Image unwrapImage(ImageRep imageRep)
Extrahiert ein Java-AWT-Image-Objekt aus einem
ImageRep-Objekt.
Parameter
imageRep
Das ImageRep-Objekt, aus dem das Bild extrahiert werden soll.
Rückgabewert
Ein Java-AWT-Image-Objekt, das aus dem Inhalt des
ImageRep-Objekts erstellt wurde, oder null, wenn
imageRepnull ist.
ImageRep wrapImage(Image image, String name=None)
Erstellt ein ImageRep-Objekt aus einem Java-AWT-Image-Objekt.
Parameter
image
Das Java-AWT-Image-Objekt, das eingebettet werden soll.
name
Ein optionaler Name für das Bild.
Rückgabewert
Ein ImageRep-Objekt, das das übergebene Bild
einbettet, oder null, wenn imagenull ist.