我正在尝试在 Verifone VX 520 屏幕上显示位图图像。
我尝试使用该put_BMP()
函数,但它返回-1
并且图像不显示。图像是单色和 128x128 像素。这是代码:
int main() {
char bg[] = "background.bmp";
int display = open(DEV_CONSOLE, O_WRONLY);
put_BMP(bg);
return 0;
}
我该如何做到这一点?
我正在尝试在 Verifone VX 520 屏幕上显示位图图像。
我尝试使用该put_BMP()
函数,但它返回-1
并且图像不显示。图像是单色和 128x128 像素。这是代码:
int main() {
char bg[] = "background.bmp";
int display = open(DEV_CONSOLE, O_WRONLY);
put_BMP(bg);
return 0;
}
我该如何做到这一点?
以下是一些需要检查的事项:
1) “[ put_BMP()
] 仅在像素模式下可用。” 要将终端置于像素模式,请调用set_display_coordinate_mode(PIXEL_MODE);
不要忘记在set_display_coordinate_mode(CHARACTER_MODE);
完成后通过调用将其放回原处。
2)“文件必须解压。”
3)“文件必须是单色或4级灰度。” (我看到你正在这样做)
4) “文件应为128 像素宽和64 像素高(Vx510、570、610) 或 128 像素高 (Vx 670)。” 请注意,520 不在此列表中,但 520 和 570 在许多方面非常相似,屏幕尺寸就是其中之一。如果您使用 128 像素高的图片,您只会看到顶部的 1/2。
5)另外,不要忘记将文件复制到终端——我这样做的次数比我承认的要多。
以下代码:
set_display_coordinate_mode(PIXEL_MODE);
put_BMP("StackOverflow.bmp");
set_display_coordinate_mode(CHARACTER_MODE);
使用 128 x 64 像素的徽标并导致: