Ich wäre Ihnen für Ihren Rat und Ihre Hilfe sehr dankbar:
Wie kann ich ein SWT Widget/Komponente im HINTERGRUND (offscreenbuffer?) rendern und die "gemalten" Pixel, die vom Widget/Komponente gezeichnet wurden, auf die Festplatte speichern:
Was ich derzeit habe, ist:
Display display = new Display();
Shell shell = new Shell(display);
// ...
MyWidgetComponent mwc = new MyWidgetComponent(shell, SWT.BORDER);
shell.open();
Image screenshot = new Image(shell.getDisplay(), shell.getBounds());
GC.copyArea(screenshot, 0, 0);
//...
Das Problem: Die Aufnahme des Screenshots der Shell/des Widgets selbst funktioniert, aber es wird ein neues Fenster in der Taskleiste geöffnet. Das ist etwas, das ich NICHT möchte.
Was ich erreichen möchte, ist: Ich möchte diese Anwendung komplett im Hintergrund als "Serveranwendung" laufen lassen (z.B. in ein Servlet einbetten und dieses aufrufen). Die MyWidgetComponent soll also Pixel für Pixel komplett im Offscreenbuffer gerendert werden und ich hole mir später die Pixel ab und speichere sie auf der Festplatte oder gebe das gerenderte Widget direkt als Bild als Ergebnis der Servlet-Anfrage zurück. (Ich möchte in einer Serverumgebung kein Windows aufpoppen lassen, falls es sich um einen Windows-Server handeln sollte...).
Wie kann ich das erreichen? Ich habe viel gesucht, aber nichts Nützliches gefunden.
Herzlichen Dank! Jan