7
votes

Prendre un coup d'écran d'un cadre en linux incorporé

Je suis en cours d'exécution Linux intégré sur une trousse d'évaluation (Kit de développement Torpedo Zoom OMAP35X). Le conseil a un LCD et j'aimerais pouvoir prendre des coups d'écran les convertir en GIF ou à PNG. Je peux obtenir les données brutes en procédant comme suit: "CP / dev / FB0 Screen.raw.raw", mais je suis intercepté de convertir l'image en un format GIF ou PNG.

J'ai joué avec convertir de ImageMagick (Exemple: "Convert -Depth 8 -Size 240x320 RGB :./ Screen.Raw -Swap 0,2-----Commercommune.png"), mais n'a pas pu obtenir un image qui a l'air bien.

Est-ce que quelqu'un connaît-il d'autres outils que je pourrais essayer? Ou quelqu'un a-t-il des conseils pour utiliser ImageMagick?


1 commentaires

Est "Linux incorporé" une version / configuration de noyau très spécifique, ou juste un nom général pour Linux en cours d'exécution sur Embedded? Related: Unix.stackexchange.com/questions/25063/...


3 Réponses :


10
votes

Jetez un coup d'œil à FBGrab , une application qui ne fait que cela (cela enregistre le contenu de la tramebuffer en tant que PNG ).


2 commentaires

J'ai essayé Fbgrab, mais cela ne supporte pas "les profondeurs de bits bas de gamme". Pour mon appareil, la profondeur du bit est de 8. :( Cependant, j'ai regardé fbshot - sfires.net/fbshot. FBGraB est basé sur FBSHOT et prend en charge une profondeur de 8 bits. Fbshot fonctionne très bien.


FBGrab a été déplacé vers Github . J'ai également eu un problème avec une version antique 1.2 qui n'a pas géré RGB565 bien fixé par la mise à jour de la version récente.



1
votes

Ce n'est peut-être pas possible / facile de le faire directement avec ImageMagick.

Le noyau Linux 4.2 Documentation https: / /Github.com/torvalds/linux/blob/v4.2/documentation/fb/api.txumentation#45 dit:

pixels sont stockés en mémoire dans des formats dépendants du matériel. Les applications ont besoin être conscient du format de stockage de pixels afin d'écrire des données d'image sur le mémoire tampon de cadre dans le format attendu par le matériel.

Les formats sont décrits par des types de tampons de cadre et des éléments visuels. Certains visuels nécessitent Informations complémentaires, qui sont stockées dans les informations d'écran variables Bits_PER_PIXEL, champs de niveaux de gris, rouge, vert, bleu et transp.

visuels décrivent comment les informations de couleur sont codées et assemblées pour créer macropixels. Les types décrivent comment les macropixels sont stockés en mémoire. Les types et visuels suivants sont pris en charge.

Une liste de visuels et de types suit, mais la description ne me suffit pas à comprendre les formats exacts immédiatement.

Mais il semble probable que cela ne soit pas un format que Imagemagick comprendra directement ou au moins que vous devriez trouver le format utilisé pour décider des options ImageMagick.


0 commentaires

4
votes

Vous pouvez simplement capturer la tramebuffer à un fichier et l'ouvrir dans n'importe quel visualiseur d'images RAW ou essayer en ligne par exemple: https: // Rawpixels.net/

cat /dev/fb0 > fbdump


2 commentaires

Ce convertisseur en ligne n'a pas fonctionné pour moi, mais ici, j'ai trouvé un script Perl qui a fait la conversion bien: Cnx-software.com/2010/07/18/HOW-A-DO-A-Framebuffer-Screensh OT


Est-il normal d'obtenir plusieurs mégaoctets de tout le contenu zéro de cette manière de dumping / dev / fb0?