çerçeve arabelleğine (/ dev / fb *) bir JPG veya PNG görüntüleyebilir miyim?


19

Linux'taki framebuffer'ı böyle bir şey kullanarak yakalayabileceğimi cp /dev/fb0 ~/myimageve cihaza böyle başa çıkarak yeniden görüntüleyebileceğimi biliyorum cp ~/myimage /dev/fb0. Çerçeve arabelleği görüntü verileri hangi biçimde? ve önceden oluşturulmuş bir görüntüyü (jpg, png) çerçeve arabelleğine nasıl gösterebilirim? İmagemagick kullanarak bu biçime dönüştürebilir miyim?

ps Ahududu pi çalışan bir ahududu pi kullanıyorum.



11-12-2012 Güncellemesi

Uygulamamda görüntüleri göstermek için pygame kullandım . Bunun görüntüleri görüntülemek için çerçeve arabelleği kullanıp kullanmadığından emin değilim. Ama ihtiyaçlarımı oldukça iyi karşılıyor.

Yanıtlar:


8

Eğer denediniz Fbida ?

fbidafbi, çerçeve tamponu için bir resim görüntüleyici içerir .

Link to fbiman sayfasına - http://manpages.ubuntu.com/manpages/lucid/man1/fbi.1.html

Not - Raspbian'da çalışıp çalışmayacağından emin değilim.


Maalesef 'fbi'nin ekranın altında bir durum çubuğu görüntülemesini engellemek mümkün görünmüyor. Bu çeşitli uygulamalar için bir showtopper biraz ...
Jules

3
@Jules Debian 8'de (test), -noverboseyalnızca görüntünün kendisini görüntülemesini sağlayan bir seçenek vardır; ancak bu kılavuz sayfasında belgelenmemiştir, ancak bunun için yalnızca "kullanım:" dadır.
Abbafei

Çalışıyor mu? Daha önce yazarın web sayfasında kaynaktan bir kopya oluşturdum ve bu seçenek vardı, ancak seçenek aslında bu sürümde hiçbir şey yapmadı.
Jules

@Jules -noverbosekullanarak fbiyüklediğimde raspbian kullanarak benim için çalışıyor apt-get install fbi.
D. Woods


2

Çerçeve arabelleği görüntü verileri hangi biçimde?

Linux çekirdek 4.2 dokümanları https://github.com/torvalds/linux/blob/v4.2/Documentation/fb/api.txt#45 diyor:

Pikseller belleğe donanıma bağlı formatlarda depolanır. Uygulamaların, çerçeve arabelleği belleğine donanım tarafından beklenen formatta görüntü verisi yazmak için piksel depolama formatının farkında olması gerekir.

Biçimler çerçeve arabelleği türleri ve görselleriyle açıklanır. Bazı görseller, bits_per_pixel, gri tonlamalı, kırmızı, yeşil, mavi ve transp alanı alanlarında değişken ekran bilgisinde saklanan ek bilgiler gerektirir.

Görseller, makro bilginin oluşturulması için renk bilgilerinin nasıl kodlandığını ve birleştirildiğini açıklar. Türler, makropiksellerin bellekte nasıl saklandığını açıklar. Aşağıdaki türler ve görseller desteklenir.

Görsel ve türlerin bir listesi aşağıdadır, ancak açıklama tam formatları hemen anlayabilmem için yeterli değildir.


1
@Downvoters açıklamak lütfen bilgi öğrenmek ve geliştirmek. Asla misilleme yapmam. Teşekkürler.
Ciro Santilli 事件 改造 中心 法轮功 六四 事件

1

İsterseniz cp /dev/fb0 ~/myimage, görüntü yalnızca piksel bilgilerini içermeli ve sipariş doğru olmalıdır ( RGB, BGR, RGBA, ARGB...)

Bunu da yapmak istiyorum, ancak uygun bir araç bulamadım, bu yüzden görüntüyü önceden hazırlamama yardımcı olmak için python kullanıyorum. Deneyebilirsin bu .


0

Bunları yükleyebiliyorsanız, fbcatppm görüntüsü fbgraboluşturur ve png görüntüsü oluşturur.


0

Fb_var_screeninfo gibi yapılarda /usr/include/linux/fb.h adresine bakın. Çeşitli renk derinlikleri ve formatları olabilir. 16 bit / piksel yolunu çok sık görüyorum, şu anda 32 tane var. Fbset'i tek başına yazın ve geçerli ayarları görüntüler. Hangi /etc/fb.modes girişlerinden biri olacak.

upstairs# fbset

mode "1920x1080"
    geometry 1920 1080 1920 1080 32
    timings 0 0 0 0 0 0 0
    rgba 8/16,8/8,8/0,8/24
endmode

Imagemagick tam olarak ihtiyacınız olan modla eşleşebilirse çalışabilir. Muhtemelen C'de bir şeyler yazardım, libjpeg veya libpng'yi çağıran bir düzine satır, bir görüntüyü bir bellek dizisine açabilir. Bitleriniz / renkleriniz vb. Eşleşmeli veya dönüştürmek için bir şeyler yazmalısınız. İyi deneyim.

Ayrıca bir dosya olarak okuma / yazma / dev / fb0 okumak yerine, bir dosya tanımlayıcı almak için açın () sonra mmap () böylece belleğe bir işaretçi ile çalışıyorsunuz. En az 10x transfer yapmak çok daha hızlı.

Ama görüntüleri ekrana koymak için sadece qiv yüklüyorum. Daha sonra yardım için F1'e basın, ancak bir görüntüyü görüntülerken bir x, istediğiniz şeyse kök pencereye yarı kalıcı olarak yazar. Ya da sadece Masaüstü Tercihleri'nde duvar kağıdı olarak ayarlayın ve her önyükleme gelecektir.


Benimki ARGB görünüşe göre (Raspbian). Bir GIMP renk seçicisinden HTML türü renklerle başladım, doğru yapmak için 4 denedim.
Alan Corey
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.