
Habe den ganzen Tag damit ver…bracht mein Log vom .txt ins WordPress zu übertragen. Unglaublich wie viel Layout in einfaches ASCII hineininterpretiert werden kann und wie viele Fehler dabei gemacht werden können.
Genug gesudert, zurück zum Programm.
Der Beispielcode in _SCREENIMAGE ist folgender:
desktop& = _SCREENIMAGE
MaxScreenX& = _WIDTH(desktop&)
MaxScreenY& = _HEIGHT(desktop&)
_FREEIMAGE desktop& 'free image after measuring screen(it is not displayed)
SCREEN _NEWIMAGE(MaxScreenX&, MaxScreenY&, 256) 'program window is sized to fit
_SCREENMOVE _MIDDLE
In der ersten Zeile wird von dem Desktop ein Screenshot erstellt und in desktop&
gespeichert. Aus diesem dektop&
werden Breite (MaxScreenX&
) und Höhe (MaxScreenY&
) ausgelesen. Daraufhin wird desktop&
wieder geleert und das QB64-Programmfenster auf die Desktopgröße vergrößert. In der letzten Zeile wird das QB64-Programmfenster zentriert.
Das totale Gegenteil von Borderless Fullscreen…
Würde _SCREENIMAGE
des Beispiels wegen nicht verwendet werden müssen, würde man die Desktopdimensionen über die QB64-Befehle _DESKTOPWIDTH
und _DESKTOPHEIGHT
einlesen können.
Das aber nur so am Rande bemerkt, da ich ja eigentlich nur wegen _SCREENIMAGE
da bin.
Die einfachste Version die Funktionalität des Programms zu testen wäre es desktop&
nicht zu leeren und stattdessen per _COPYIMAGE
anzuzeigen. Da ich aber sowieso die Screenshots speichern möchte, wende ich mich dem Begriff… es gibt keinen Speicher-Bild-als-Datei-Befehl!?!
Aber es gibt eine von Galleon erstellte SAVEIMAGE SUB die .bmp
erstellen kann. Irgendwie bin ich von dieser Lösung nicht wirklich begeistert, aber ein Testlauf sollte zeigen ob durch das .bmp
ein Qualitätsverlust entsteht.
Es funktioniert. Das .bmp
ist zwar fast 4Mb groß aber Farben und Qualität passen. Allerdings ist es statt den erwarteten 1920×1080 nur 1536*864 groß?
Links oben passt, aber rechts und unten fehlen Daten.
Einen kurzen Test mit dem weiter oben erwähnten _DESKTOPWIDTH
und _DESKTOPHEIGHT
ergibt das QB64 meint das mein Desktop diese Dimension hat.
Dafür habe ich entdeckt das _SCREENIMAGE(column1, row1, column2, row2)
einstellbarer ist. Meine Vermutung das der Bildausschnitt zu groß war wird leider zerschmettert, denn der Koordinatengesteuerte Versuch provoziert einen Fehler. Mit QB64 ist also tatsächlich kein kompletter Screenshot möglich…