我试图在Verifone VX 520屏幕上显示位图图像。
我尝试使用put_BMP()函数,但它返回-1,图像没有显示。图像为单色和128像素。以下是代码:
int main() {
char bg[] = "background.bmp";
int display = open(DEV_CONSOLE, O_WRONLY);
put_BMP(bg);
return 0;
}我怎样才能做到这一点?
发布于 2015-06-08 20:51:41
以下是一些需要检查的内容:
1) "put_BMP()只能在像素模式中使用。“若要将终端置于像素模式,请调用set_display_coordinate_mode(PIXEL_MODE); --不要忘记在完成时调用set_display_coordinate_mode(CHARACTER_MODE);将其放回原处。
2)“文件必须是uncompressed.”
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像素的徽标,结果如下:

https://stackoverflow.com/questions/30685104
复制相似问题