Saya tahu saya dapat menangkap framebuffer di linux menggunakan sesuatu seperti cp /dev/fb0 ~/myimage
dan menampilkannya kembali dengan cara kembali ke perangkat seperti itu cp ~/myimage /dev/fb0
. Apa format data gambar framebuffer? dan bagaimana cara menampilkan gambar yang sudah dibuat sebelumnya (jpg, png) ke framebuffer? Bisakah saya mengonversi ke format ini menggunakan imagemagick?
ps Saya menggunakan pi raspberry menjalankan raspbian.
Perbarui 11-12-2012
Saya akhirnya menggunakan pygame untuk menampilkan gambar di aplikasi saya. Tidak yakin apakah ini menggunakan frame-buffer untuk menampilkan gambar. Tapi itu memenuhi kebutuhan saya dengan cukup baik.
sumber
-noverbose
opsi yang membuatnya hanya menampilkan gambar itu sendiri; Namun, ini tidak didokumentasikan di halaman manual, tetapi hanya di "penggunaan:" untuk itu.-noverbose
berfungsi untuk saya gunakanfbi
pada raspbian ketika saya menginstalnya menggunakanapt-get install fbi
.mungkin membantu Anda, rinci petunjuk http://hacklab.cz/2012/04/22/usefulness-linux-framebuffer-virtual-console saya pikir itu semua di satu tempat tentang Linux Framebuffer
sumber
Dokumentasi Linux kernel 4.2 https://github.com/torvalds/linux/blob/v4.2/Documentation/fb/api.txt#45 mengatakan:
Daftar visual dan tipe berikut, tetapi deskripsi tidak cukup bagi saya untuk segera memahami format yang tepat.
sumber
Jika Anda mau
cp /dev/fb0 ~/myimage
, gambar hanya boleh berisi informasi piksel, dan urutannya harus benar (RGB, BGR, RGBA, ARGB
...)Saya ingin melakukan ini juga, tetapi tidak menemukan alat yang cocok, jadi saya menggunakan python untuk membantu saya membuat gambar sebelumnya. Anda bisa mencoba ini .
sumber
Jika Anda dapat menginstalnya,
fbcat
akan membuat gambar ppm, danfbgrab
akan membuat gambar png.sumber
Lihatlah /usr/include/linux/fb.h di struct seperti fb_var_screeninfo. Mungkin ada berbagai kedalaman dan format warna. Saya melihat 16 bit / pixel terlalu sering, sekarang saya memiliki 32. Ketik fbset dengan sendirinya dan itu akan menampilkan pengaturan saat ini. Yang hampir pasti akan menjadi salah satu entri di /etc/fb.modes.
Imagemagick mungkin berfungsi jika Anda dapat membuatnya cocok dengan mode yang Anda butuhkan. Saya mungkin akan menulis sesuatu dalam C, selusin baris yang memanggil libjpeg atau libpng dapat mendekompres gambar ke dalam array memori. Bit / warna Anda dll. Harus cocok atau Anda perlu menulis sesuatu untuk mengubahnya. Pengalaman yang baik.
Juga daripada membaca / menulis / dev / fb0 sebagai file, buka () untuk mendapatkan deskriptor file lalu mmap () sehingga Anda bekerja dengan pointer ke memori. Jauh lebih cepat dalam melakukan transfer, setidaknya 10x.
Tetapi untuk meletakkan gambar di layar saya hanya menginstal qiv. Kemudian tekan F1 untuk meminta bantuan, tetapi x saat menampilkan gambar akan menuliskannya secara semi-permanen ke jendela root jika itu yang Anda inginkan. Atau hanya mengaturnya sebagai wallpaper di Preferensi Desktop dan itu akan muncul setiap boot.
sumber