【问题标题】:How to show bitmap image on Verifone VX 520 screen如何在 Verifone VX 520 屏幕上显示位图图像
【发布时间】:2015-08-21 12:00:38
【问题描述】:

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

我该如何做到这一点?

【问题讨论】:

  • errno 设置为什么?

标签: point-of-sale verifone


【解决方案1】:

这里有一些事情要检查:

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

【讨论】:

  • CHARACTER_MODE 和 PIXEL_MODE 有什么区别?
  • 我所知道的是,处理原始像素操作的 API 需要 PIXEL_MODE,而使用 ASCII 字符操作屏幕的 API 需要 CHARACTER_MODE。我猜测不与控制台交互的 API 并不关心您处于哪种模式,但我从未尝试过它。我可以肯定地说 CHARACTER_MODE 是默认值,适用于绝大多数调用。对不起,这是我最好的答案...
猜你喜欢
  • 1970-01-01
  • 2012-09-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-15
  • 2019-04-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多