Seite 1 von 1
BitBlt auf RaspberryPi?
Verfasst: Freitag 28. Oktober 2022, 20:09
von opus
Hallo ich bin Python Neuling!
Ich möchte ein Python Programm für einen RaspberryPI schreiben das BitBlt benötigt.
Gem. der Suche im WWW wird dazu eine externe Library benötigt (z.B. win32gui) und wegen der Nutzung dieser externen Library läuft das Programm nur in einem Terminal.
Dazu ein paar Fragen:
-Ist das so richtig?
-Kann ein Terminal den gesamten Screen nutzen?
-Ist es überhaupt sinnvoll solch ein Programm auf einem Raspi laufen zu lassen?
Danke für die Antworten im voraus!
PS: Die Fragen nach "Warum auf einem RaspberryPi?" und "Wozu BitBlt?" beantworte ich gerne bei Interesse!
Re: BitBlt auf RaspberryPi?
Verfasst: Freitag 28. Oktober 2022, 20:19
von __deets__
Das klingt sehr nach einem XY-Problem. Beschreibe doch mal, was denn dein Ziel hier ist.
Re: BitBlt auf RaspberryPi?
Verfasst: Samstag 29. Oktober 2022, 12:17
von opus
Wozu BitBlt:
Ich glaube BitBlt zu benötigen um in einer 2D Grafik sich ändernde Frequenzen in zeitlichen Ablauf darzustellen (ich würde das "Wasserfallanzeige" nennen). Dabei wird die Frequenz (genauer die aktuelle Amplitude der Frequenz im Anzeigebereich) auf der X-Achse dargestellt und die Zeit auf der Y-Achse. Das Programm berechnet nur die aktuelle Amplitude jeder Frequenz im Anzeigebereich und schreibt/malt diese auf die unterste Zeile des genutzten Graphikbereichs. Per BitBlt wird in jedem Zeitschritt der Graphikbereich um ein Pixel nach oben verschoben. Dadurch wird die Anzeige des Verlaufes erstellt, ohne das dieser extra gespeichert werden muss.
Das funktioniert so schon in einer von mir erstellten Anwendung aus VB6 ( lange her!) und soll nun mit ein paar inhaltlichen Änderungen für Python umgeschrieben werden.
Falls es da bessere Ideen gibt, bin ich immer offen dafür!
Das angefügte Bild zeigt zwei solche Anzeigen.
https://www.dropbox.com/s/tvbre46wki5p1 ... e.jpg?dl=0
Warum Python auf RaspberryPi:
Das fertige Programm soll in einem Museum als Dauerschleife ablaufen, ich hoffe (hoffte?) das dafür ein RaspberryPi ausreichend wäre.
Re: BitBlt auf RaspberryPi?
Verfasst: Samstag 29. Oktober 2022, 12:54
von __blackjack__
@opus: Sieht für mich schon so ein bisschen nach XY-Problem aus. Such Dir ein GUI-Rahmenwerk und schau dann wie das da gemacht wird, statt sich eine Low-Level-Technik zu suchen und danach dann Bibliotheken zu suchen. Wie das dann unter der Haube umgesetzt wird, kann Dir doch egal sein. In dem Bild sind ja auch Drop-Down-Auswahlboxen. Es wäre mir ja wichtiger so etwas nicht selber programmieren zu müssen, als unbedingt so effizient wie möglich auf Pixelbuffer-Ebene zu programmieren.
Re: BitBlt auf RaspberryPi?
Verfasst: Samstag 29. Oktober 2022, 13:37
von __deets__
Sowas würde man heute einfach zb mit pygame und einem numpy Array als Bildquelle machen. Das verschieben und unten dranhängen sind triviale Operationen, und auch ausreichend beschleunigt.
Re: BitBlt auf RaspberryPi?
Verfasst: Samstag 29. Oktober 2022, 18:16
von opus
Danke für die Antworten.
@_blackjack_:
Der Vorschlag ein GUI-Rahmenwerk zu nutzen ist m.E. ja auch schon eine externe Library.
Die Frage war ob das dann auf einem Raspi überhaupt läuft.
Leider habe ich den Bildausschnitt wohl zu groß gewählt, die DropDown Boxen waren eben nicht die Frage. Ich könnte auf vieles verzichten oder würde es selber erstellen (ungern) wenn ich nur das BitBlt nutzen könnte. Denn ohne das wird es ein Performance Problem.
@_deets_
Ich nutze jetzt pygame um mir ein Beispiel zu erstellen welches ´blit´ in der Form nutzt wie ich es brauche. Das werde ich dann auf einem Raspi testen. Die Antwort wird folgen.
Re: BitBlt auf RaspberryPi?
Verfasst: Samstag 29. Oktober 2022, 22:15
von opus
Update:
Das Testprogramm mit 'blit' läuft auf dem Raspi3B im FullScreen Modus. Keine Ahnung ob ich die Einträge im WWW falsch verstanden habe (immer möglich) oder...
Nun geht es ans Eingemachte!
Danke für die Antworten
Re: BitBlt auf RaspberryPi?
Verfasst: Samstag 29. Oktober 2022, 22:41
von __blackjack__
@opus: Woher weisst Du das es ohne "BitBlt" ein Performance-Problem geben wird? IMHO hast Du Dich in eine Lösung verbissen, wegen einem Problem von dem Du überhaupt gar nicht weisst ob das überhaupt existiert, statt einfach zu schauen welche Bibliotheken gibt es für GUIs und es dann mit irgendeiner mit den Mitteln umzusetzen, welche die so bieten, egal wie die Funktionen dort heissen und wie die letztlich technisch umgesetzt sind.
Re: BitBlt auf RaspberryPi?
Verfasst: Montag 31. Oktober 2022, 11:23
von opus
@__blackjack__
Ich hätte es wohl offener formulieren sollen, wie etwa: " ohne die Möglichkeit den Inhalt (komplett oder in Teilen) eines Bildes en bloc auf eine andere Position zu setzen...". Natürlich bin ich offen für andere, bessere Lösungen.
Hätte solch eine "grundlegende Operation" (Zitat @_deets_) aber die Nutzung eines RaspberryPI ausgeschlossen hätte ich den Gesamtansatz anpassen müssen!
Mittlerweile nutze ich 'surface.scroll()'. So eine Funktion hätte ich damals (bei der Ersterstellung in VB6) haben wollen!
Wie immer in einem Forum, die Diskussion hilft, auch wenn man letztlich die Lösung fast selber findet!
Danke!!
Re: BitBlt auf RaspberryPi?
Verfasst: Montag 31. Oktober 2022, 11:46
von noisefloor
Hallo,
Die Frage war ob das dann auf einem Raspi überhaupt läuft.
Na ja, die grafische Benutzeroberfläche von Raspbian OS kommt ja auch nicht aus dem nichts. Die läuft auch auf GTK+ und dem XServer für die Grafik. Qt und Tkinter und was sonst noch so unter Linux gängig ist läuft auch alles auf dem Raspberry Pi. Von daher gibt es da wenig Gründe, low-level anzusetzen.
Wenn du für eine Anwendung mit dem Pi ein Performance Problem hast, dann löst du das mit selbstgeschriebenen low-level Bibliotheken auch nicht unbedignt, sondern verschiebst das Problem vielleicht ein bisschen, löst es aber nicht.
Gruß, noisefloor