Acquisizione di una schermata di un framebuffer Linux incorporato
-
10-07-2019 - |
Domanda
Sto eseguendo Embedded Linux su un kit di valutazione (Zoom OMAP35x Torpedo Development Kit). La scheda ha un display LCD e vorrei poter catturare schermate convertirle in gif o png. Posso ottenere i dati grezzi nel modo seguente: " cp / dev / fb0 screen.raw " ;, ma sono sconcertato su come convertire l'immagine in un formato gif o png.
Ho giocato con convert da ImageMagick (esempio: " convert -depth 8 -size 240x320 rgb: ./ screen.raw -swap 0,2 -separate -combine screen.png "), ma non sono stato in grado di ottenere un'immagine che sembra corretta.
Qualcuno conosce altri strumenti che potrei provare? O qualcuno ha suggerimenti per l'utilizzo di ImageMagick?
Soluzione
Dai un'occhiata a fbgrab , un'applicazione che fa proprio questo (salva il contenuto del framebuffer come png).
Altri suggerimenti
Potrebbe non essere possibile / facile farlo direttamente con ImageMagick.
La documentazione 4.2 del kernel Linux https: / /github.com/torvalds/linux/blob/v4.2/Documentation/fb/api.txt#45 dice:
I pixel sono archiviati in memoria in formati dipendenti dall'hardware. Bisogno di applicazioni essere consapevoli del formato di archiviazione dei pixel per poter scrivere i dati delle immagini sul file memoria buffer frame nel formato previsto dall'hardware.
I formati sono descritti da tipi di frame buffer e immagini. Alcuni elementi visivi richiedono informazioni aggiuntive, che sono memorizzate nelle informazioni sullo schermo variabile bits_per_pixel, scala di grigi, rosso, verde, blu e campi transp.
I visual descrivono come le informazioni sul colore vengono codificate e assemblate per creare macropixel. I tipi descrivono come i macropixel vengono archiviati in memoria. Sono supportati i seguenti tipi e elementi visivi.
Segue un elenco di elementi visivi e tipi, ma la descrizione non è sufficiente per comprendere immediatamente i formati esatti.
Ma sembra probabile che potrebbe non essere un formato che ImageMagick capirà direttamente, o almeno dovresti scoprire il formato usato per decidere le opzioni di ImageMagick.