Tôi có thể hiển thị JPG hoặc PNG cho bộ đệm khung (/ dev / fb *) không?


19

Tôi biết tôi có thể chụp bộ đệm khung trong linux bằng cách sử dụng một cái gì đó giống như cp /dev/fb0 ~/myimagevà hiển thị lại bằng cách đối phó với thiết bị như vậy cp ~/myimage /dev/fb0. Dữ liệu hình ảnh bộ đệm khung ở định dạng nào? và làm cách nào để hiển thị hình ảnh được tạo sẵn (jpg, png) cho bộ đệm khung? Tôi có thể chuyển đổi sang định dạng này bằng hình ảnh không?

ps Im sử dụng một mâm xôi pi chạy raspbian.



Cập nhật ngày 11-12-2012

Tôi đã kết thúc bằng cách sử dụng pygame để hiển thị hình ảnh trong ứng dụng của mình. Không chắc chắn nếu điều này sử dụng bộ đệm khung để hiển thị hình ảnh. Nhưng nó đáp ứng nhu cầu của tôi khá tốt.

Câu trả lời:


8

Bạn đã thử Fbida chưa?

fbidachứa fbi, một trình xem hình ảnh cho bộ đệm khung.

Liên kết đến fbitrang man - http://manpages.ubfox.com/manpages/lucid/man1/fbi.1.html

Tái bút - Tôi không chắc liệu nó có hoạt động trong Raspbian không.


Thật không may, dường như không thể ngăn 'fbi' hiển thị thanh trạng thái ở cuối màn hình. Đây là một chút của một showstopper cho các ứng dụng khác nhau ...
Jules

3
@Jules Trên Debian 8 (thử nghiệm), có một -noverbosetùy chọn làm cho nó chỉ hiển thị hình ảnh; tuy nhiên, điều này không được ghi lại trong trang man, mà chỉ trong phần "cách sử dụng:" cho nó.
Abbafei

Nó có hoạt động không? Trước đây tôi đã tạo một bản sao từ nguồn trên trang web của tác giả và điều đó đã có tùy chọn, nhưng tùy chọn dường như không thực sự làm bất cứ điều gì trong phiên bản đó.
Jules

@Jules -noverbosehoạt động với tôi bằng cách sử dụng fbitrên raspbian khi tôi cài đặt nó bằng cách sử dụng apt-get install fbi.
D. Rừng


2

Dữ liệu hình ảnh bộ đệm khung ở định dạng nào?

Tài liệu về nhân Linux 4.2 https://github.com/torvalds/linux/blob/v4.2/Documentation/fb/api.txt#45 nói:

Pixel được lưu trữ trong bộ nhớ ở các định dạng phụ thuộc vào phần cứng. Các ứng dụng cần lưu ý về định dạng lưu trữ pixel để ghi dữ liệu hình ảnh vào bộ nhớ đệm khung theo định dạng mà phần cứng mong đợi.

Các định dạng được mô tả bởi các loại bộ đệm khung và hình ảnh. Một số hình ảnh yêu cầu thông tin bổ sung, được lưu trữ trong các thông tin màn hình biến bit_per_pixel, thang độ xám, đỏ, lục, lam và transp.

Hình ảnh mô tả cách thông tin màu được mã hóa và lắp ráp để tạo macropixels. Các loại mô tả cách macropixels được lưu trữ trong bộ nhớ. Các loại và hình ảnh sau đây được hỗ trợ.

Một danh sách các hình ảnh và các loại theo sau, nhưng mô tả không đủ để tôi hiểu các định dạng chính xác ngay lập tức.


1
@Downvoters vui lòng giải thích để tôi có thể tìm hiểu và cải thiện thông tin. Tôi không bao giờ trả đũa. Cảm ơn.
Ciro Santilli 新疆 心 心

1

Nếu bạn muốn cp /dev/fb0 ~/myimage, hình ảnh chỉ nên chứa thông tin pixel và thứ tự phải đúng ( RGB, BGR, RGBA, ARGB...)

Tôi cũng muốn làm điều này, nhưng không tìm thấy một công cụ phù hợp, vì vậy tôi sử dụng python để giúp tôi tạo sẵn hình ảnh. Bạn có thể thử điều này .


0

Nếu bạn có thể cài đặt chúng, fbcatsẽ tạo hình ảnh ppm và fbgrabsẽ tạo hình ảnh png.


0

Hãy xem /usr/include/linux/fb.h tại các cấu trúc như fb_var_screeninfo. Có thể có nhiều độ sâu màu và định dạng. Tôi thấy cách 16 bit / pixel quá thường xuyên, ngay bây giờ tôi có 32. Nhập fbset một mình và nó sẽ hiển thị các cài đặt hiện tại. Mà gần như chắc chắn sẽ là một trong những mục trong /etc/fb.modes.

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 có thể hoạt động nếu bạn có thể làm cho nó khớp chính xác với chế độ bạn cần. Tôi có thể viết một cái gì đó bằng C, một tá dòng gọi libjpeg hoặc libpng có thể giải nén một hình ảnh thành một mảng bộ nhớ. Bit / màu của bạn, vv cần phải khớp hoặc bạn cần phải viết một cái gì đó để chuyển đổi nó. Kinh nghiệm tốt.

Ngoài ra, thay vì đọc / ghi / dev / fb0 dưới dạng tệp, hãy mở () nó để lấy một mô tả tệp sau đó mmap () để bạn làm việc với một con trỏ tới bộ nhớ. Nó nhanh hơn nhiều khi thực hiện chuyển khoản, ít nhất là 10 lần.

Nhưng để đưa hình ảnh lên màn hình tôi chỉ cần cài đặt qiv. Sau đó nhấn F1 để được trợ giúp, nhưng một x trong khi hiển thị hình ảnh sẽ ghi nó bán vĩnh viễn vào cửa sổ gốc nếu đó là những gì bạn muốn. Hoặc chỉ cần đặt nó làm hình nền trong Tùy chọn máy tính để bàn và nó sẽ xuất hiện mỗi khi khởi động.


ARGB của tôi rõ ràng (Raspbian). Tôi đã bắt đầu với các loại màu HTML từ bộ chọn màu GIMP, mất 4 lần thử để làm cho đúng.
Alan Corey
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.