5

我正在尝试在 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;
}

我该如何做到这一点?

4

1 回答 1

12

以下是一些需要检查的事项:

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 像素的徽标并导致:

put_BMP 结果

于 2015-06-08T20:51:41.690 回答