小编Gar*_* Z.的帖子

如何获取 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
查看次数

是否可以为 mpv 建立按键绑定来运行 shell 脚本?

我想改变我的网络摄像头的曝光时间增益......使用类似的东西v4l2-ctl -d /dev/video2 -c gain=15

据我搜索,mpv 的键绑定位于/配置于~/.config/mpv/input.conf。但是,我在互联网上找不到“如何从 mpv 的键绑定执行外部 shell 脚本”。这可能吗?

keyboard-shortcuts shell-script mpv

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

如何向远程设备的 tmux-session 发送命令(使用 ssh)

在我的 vanila Arch Linux 系统上,我可以使用以下命令发送到本地tmux-session(会话main):

$ tmux send -t main.0 'echo asdf' ENTER
Run Code Online (Sandbox Code Playgroud)

ssh我还可以使用: (仅用于演示,我使用)向远程计算机发送命令localhost

$ ssh garid@localhost "ls /home"
Run Code Online (Sandbox Code Playgroud)

tmux-session我想从我的终端发送命令remote-machine(如下所示):

$ ssh -t garid@localhost "tmux send -t main.0 'echo asdf' ENTER"
Run Code Online (Sandbox Code Playgroud)

但它输出以下错误:

error connecting to /tmp/tmux-1000/default (No such file or directory)
Connection to localhost closed.
Run Code Online (Sandbox Code Playgroud)

我在这里做错了什么?

command-line ssh arch-linux tmux openssh

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

指出我将 TIFF 转换为 PNG/JPG 时的错误

这是一个输入 tiff 图像,我想将其转换为 JPG/PNG。googledrive-下载样本链接

在此输入图像描述

根据一般经验,我总是使用以下命令在两种图像格式之间进行转换(主要是 JPG 到 PNG )。convert input.jpg out.png

但:

convert input.tiff out.png
Run Code Online (Sandbox Code Playgroud)

产生以下图像。您能指出为什么将 TIF 转换为 PNG 无法正常工作吗?这与色彩空间/压缩有关吗?

在此输入图像描述

以防万一:$identify input.tiff给出

input.tiff TIFF 640x480 640x480+0+0 8-bit YCbCr 619120B 0.000u 0:00.000
Run Code Online (Sandbox Code Playgroud)

另外,更多信息如何制作图像:

ffmpeg -hide_banner -loglevel error -y -f video4linux2 -i /dev/video0 -vframes 1 fname.tiff;
Run Code Online (Sandbox Code Playgroud)

imagemagick image-manipulation conversion images

4
推荐指数
1
解决办法
1750
查看次数