标签: fbi

如何获取 FrameBuffer 每行写入的字节数?

目标:我正在为帧缓冲区编写一个非常简单的图像查看器/dev/fb0(类似于fbi)。

当前状态:

  1. /sys/class/graphics/fb0/virtual_size我的软件从(例如)中获取像素分辨率1920,1080
  2. 然后(对于每一行)它将为每 1920 个行像素(总共 4x1920=7680 字节)写入 4 个字节(BGRA)到/dev/fb0. 这在我的一台分辨率为 1920x1080 的笔记本电脑上运行得非常好。
  3. y更准确地说:在-row x-col =>处设置一个像素,arr[y * 1920 * 4 + x * 4 + channel]其中值为channel0,1,2,3分别为BGRA)。

问题

/sys/.../virtual_size当我在旧笔记本电脑上使用( ->分辨率)尝试相同的软件时1366,768,图像未正确显示(有点倾斜)。所以我研究了像素宽度值,发现该值为1376(而不是 1366)。

问题

  1. 这10个额外的字节从哪里来?
  2. 并且,我怎样才能在不同的机器上获得这个10个额外字节的值(自动,而不是手动调整它)?
  3. 为什么有些机器需要这额外的 10 个字节,而有些机器不需要它们?

framebuffer images display fbi

10
推荐指数
2
解决办法
989
查看次数

如果 tmux 在虚拟 tty 中运行,是否可以在 tmux 中运行 fbi?

我已经看过这个问题,并且解决方案在我可以在我的虚拟控制台中显示图像的范围内有效。但是,如果我首先tmux在虚拟控制台中启动 a ,然后尝试fbi <imagename>,则会失败并显示以下错误。

using "DejaVu Sans Mono-16", pixelsize=16.67 file=/usr/share/fonts/truetype/dejavu/DejaVuSansMono.ttf
ioctl VT_GETSTATE: Inappropriate ioctl for device (not a linux console?)
Run Code Online (Sandbox Code Playgroud)

是否有解决方法,例如某些设置tmux将允许它使用fbi

tmux fbi

5
推荐指数
1
解决办法
998
查看次数

如何通过 SSH 向 fbi 发送命令?

fbi用来显示一些图像。fbi有一些键盘控制,如+-Page UpPage Down,等来控制图像。

我不想使用键盘,而是想通过 SSH 将这些控制命令发送到fbi.

我已经尝试过以下方法:

mkfifo /tmp/mycmd
fbi /myfolder/*.jpg < /tmp/mycmd &
Run Code Online (Sandbox Code Playgroud)

这样做后,fbi不启动。我尝试发送一些命令,例如echo . > /tmp/mycmd,但它没有启动;并给出以下错误:

using "DejaVu Sans Mono-16", pixelsize=16.67 file=/usr/share/fonts/truetype/ttf-dejavu/DejaVuSansMono.ttf
ioctl VT_GETSTATE: Inappropriate ioctl for device (not a linux console?)
Run Code Online (Sandbox Code Playgroud)

问题是什么?

如何fbi通过 SSH发送命令!?

ssh framebuffer command fifo fbi

3
推荐指数
2
解决办法
7447
查看次数

标签 统计

fbi ×3

framebuffer ×2

command ×1

display ×1

fifo ×1

images ×1

ssh ×1

tmux ×1