프레임 버퍼 (/ dev / fb *)에 JPG 또는 PNG를 표시 할 수 있습니까?


19

나는 비슷한 것을 사용하여 리눅스에서 프레임 버퍼를 캡처 cp /dev/fb0 ~/myimage하고 장치에 다시 대처함으로써 다시 표시 할 수 있다는 것을 알고 있다 cp ~/myimage /dev/fb0. 프레임 버퍼 이미지 데이터는 어떤 형식입니까? 프레임 버퍼에 미리 만들어진 이미지 (jpg, png)를 표시하는 방법은 무엇입니까? imagemagick를 사용하여이 형식으로 변환 할 수 있습니까?

ps 나는 라즈 비안을 실행하는 라즈베리 파이를 사용하고 있습니다.



2012 년 11 월 12 일 업데이트

파이 게임 을 사용하여 응용 프로그램에서 이미지를 표시했습니다. 이것이 프레임 버퍼를 사용하여 이미지를 표시하는지 확실하지 않습니다. 그러나 그것은 나의 요구를 아주 잘 충족시킵니다.

답변:


8

Fbida 를 사용해 보셨습니까 ?

fbida포함 fbi, 프레임 버퍼에 대한 이미지 뷰어.

fbi매뉴얼 페이지에 링크-http: //manpages.ubuntu.com/manpages/lucid/man1/fbi.1.html

추신-그것이 Raspbian에서 작동하는지 확실하지 않습니다.


불행히도 'fbi'가 화면 하단에 상태 표시 줄을 표시하지 못하게하는 것은 불가능합니다. 이것은 다양한 응용 프로그램을위한 약간의 showtopper입니다.
Jules

3
@Jules 데비안 8 (테스트) -noverbose에는 이미지 자체 만 표시 하는 옵션이 있습니다. 그러나이 내용은 매뉴얼 페이지에 설명되어 있지 않지만 "usage :"에만 있습니다.
Abbafei

작동합니까? 필자는 이전에 저자의 웹 페이지에서 소스로부터 사본을 만들었으며 옵션이 있었지만 옵션은 실제로 해당 버전에서 전혀 아무것도하지 않는 것 같습니다.
Jules

@Jules -noverbose는을 사용 fbi하여 설치할 때 raspbian에서 사용 하도록 작동합니다 apt-get install fbi.
D. 우즈


2

프레임 버퍼 이미지 데이터는 어떤 형식입니까?

Linux 커널 4.2 설명서 https://github.com/torvalds/linux/blob/v4.2/Documentation/fb/api.txt#45 는 다음과 같이 말합니다.

픽셀은 하드웨어 종속 형식으로 메모리에 저장됩니다. 이미지 데이터를 하드웨어가 예상하는 형식으로 프레임 버퍼 메모리에 쓰려면 응용 프로그램에서 픽셀 저장 형식을 알고 있어야합니다.

형식은 프레임 버퍼 유형 및 비주얼로 설명됩니다. 일부 비주얼에는 추가 정보가 필요하며,이 정보는 가변 화면 정보 bits_per_pixel, grayscale, red, green, blue 및 transp 필드에 저장됩니다.

시각적 정보는 매크로 정보를 생성하기 위해 색상 정보를 인코딩하고 조립하는 방법을 설명합니다. 유형은 매크로 픽셀이 메모리에 저장되는 방법을 설명합니다. 다음 유형 및 시각 자료가 지원됩니다.

시각 자료와 유형의 목록은 다음과 같지만 설명만으로는 정확한 형식을 즉시 이해할 수 없습니다.


1
@Downvoters는 정보를 배우고 향상시킬 수 있도록 설명하십시오. 보복하지 않습니다. 감사.
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件

1

원하는 경우 cp /dev/fb0 ~/myimage이미지에는 픽셀 정보 만 포함되어야하며 순서는 정확해야합니다 ( RGB, BGR, RGBA, ARGB...)

나도 이것을하고 싶지만 적절한 도구를 찾지 못했기 때문에 파이썬을 사용하여 이미지를 미리 만들었습니다. 당신은 이것을 시도 할 수 있습니다 .



0

fb_var_screeninfo와 같은 구조체에서 /usr/include/linux/fb.h를보십시오. 다양한 색상 심도와 형식이있을 수 있습니다. 16 비트 / 픽셀을 너무 자주 볼 수 있습니다. 현재 32 개가 있습니다. fbset 자체를 입력하면 현재 설정이 표시됩니다. 거의 확실하게 /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로 무언가를 쓸 것입니다. libjpeg 또는 libpng를 호출하는 12 줄 정도의 이미지는 이미지를 메모리 배열로 압축 해제 할 수 있습니다. 비트 / 컬러 등이 일치해야하거나 변환 할 무언가를 작성해야합니다. 좋은 경험.

또한 / dev / fb0을 파일로 읽거나 쓰지 않고 파일 설명자를 얻기 위해 open () 한 다음 mmap ()하여 메모리에 대한 포인터로 작업하고 있습니다. 전송 속도가 10 배 이상 빠릅니다.

그러나 화면에 이미지를 넣으려면 qiv를 설치하십시오. 그런 다음 F1을 누르면 도움이되지만 이미지를 표시하는 동안 x는 원하는 경우 루트 창에 반영구적으로 기록합니다. 또는 바탕 화면 환경 설정에서 배경 화면으로 설정하면 부팅 할 때마다 나타납니다.


광산의 ARGB는 분명히 (Raspbian)입니다. 김프 색상 선택기에서 HTML 유형의 색상으로 시작하여 4 가지 색상을 올바르게 사용하려고했습니다.
Alan Corey
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.