Hallo,
gibt es eine Möglichkeit die Bildschirmausgabe eines PB-Programmes Frame-by-Frame z.B. als .bmp zu speichern?
Ich meine jetzt keinen Screengrabber oder sowas sondern das man intern jeden Frame anzeigen und dann abspeichern lässt.
Hab ein kleines "Video" zu einem Musikjingle programmiert und das muss natürlich synchron vorhanden sein...
Danke,
Delle
Bilschirmausgabe von PB-Programm Frame-by-Frame speichern
Bilschirmausgabe von PB-Programm Frame-by-Frame speichern
PB 6.21 | Win 11
-
- Beiträge: 213
- Registriert: 13.07.2008 10:05
- Computerausstattung: Windows 8.1 Pro
AMD Phenom II X4 955 @ 3.2 GHz
4GB RAM
NVIDIA GeForce GTX 660
Re: Bilschirmausgabe von PB-Programm Frame-by-Frame speicher
Meinst du so was wie du mit GrabSprite() und SaveSprite() umsetzen kannst?
Windows 8.1 Pro 64Bit | AMD Phenom II X4 955 @ 3.2 GHz | 4GB RAM | NVIDIA GeForce GTX 660
Re: Bilschirmausgabe von PB-Programm Frame-by-Frame speicher
Mal angenommen: Auflösung: 1024x768 mit 60FPS ... dann wäre das in einer Sekunde 188 MBFrame-by-Frame z.B. als .bmp zu speichern
Der Ansatz ist also schon mal völlig falsch.
Wenn du wirklich dein "Video" mitscheiden willst, dann machst du das besser von außen mit zB Screen Capturer.
Die synchronisation übernimmt dabei natürlich das Programm von Purebasic, indem das "Video" zeitkritisch programmit wurde/wird und du den sound von PB starten lässt.
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Re: Bilschirmausgabe von PB-Programm Frame-by-Frame speicher
Wenn Du Dein Demo statt auf den Screen als Video rendern willst, musst Du komplett das
Timing ändern. Also die statt 60 FPS musst Du überlegen wie Du die Abläufe, die einer Sekunde
entsprechen, auf 25 Bilder verteilst.
Das Speichern ist kein Problem. Entweder mittels GrabSprite () oder über den Drawingbuffer()
bzw. am besten einfach alles in ein Bild rendern ...
Timing ändern. Also die statt 60 FPS musst Du überlegen wie Du die Abläufe, die einer Sekunde
entsprechen, auf 25 Bilder verteilst.
Das Speichern ist kein Problem. Entweder mittels GrabSprite () oder über den Drawingbuffer()
bzw. am besten einfach alles in ein Bild rendern ...
"Papa, ich laufe schneller - dann ist es nicht so weit."
- Vermilion
- Beiträge: 1846
- Registriert: 08.04.2006 16:00
- Computerausstattung: Apple iMac (2010) & HP Notebook
- Wohnort: Heidekreis
Re: Bilschirmausgabe von PB-Programm Frame-by-Frame speicher
Um es platzsparender zu machen könntest du auch ein komprimiertes Format nehmen. Ich würde das Portable Network Graphics Format dafür nehmen, es ist komprimiert und dennoch verlustfrei. Es beansprucht mehr Rechenzeit dies abzuspeichern aber dafür brauchst du nicht so viel Speicherplatz.
Zusammenfügen musst du die Bilder dann mit einem anderen Programm, es geht sogar mit PureBasic und irgendeiner Bibliothek, die mir gerade nicht einfällt.
@Stargate: Im Profi-Video Bereich ist das eigentlich normal mit gigantischen Daten zu hantieren. Unkomprimierte Rohdaten sind auch in der Musikindustrie der Ausgangspunkt für jede weitere Verarbeitung.
Zusammenfügen musst du die Bilder dann mit einem anderen Programm, es geht sogar mit PureBasic und irgendeiner Bibliothek, die mir gerade nicht einfällt.
@Stargate: Im Profi-Video Bereich ist das eigentlich normal mit gigantischen Daten zu hantieren. Unkomprimierte Rohdaten sind auch in der Musikindustrie der Ausgangspunkt für jede weitere Verarbeitung.