2015-06-06 4 views
5

Я пытаюсь показать растровое изображение на экране Verifone VX 520.Как показать растровое изображение на экране 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

Что такое ERRNO набор для? – David

ответ

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 пикселей, вы увидите только первую половину его.

5) Кроме того, не забудьте до скопировать файл на терминал - Я делаю это чаще, чем я признаю.

Следующий код:

set_display_coordinate_mode(PIXEL_MODE); 
put_BMP("StackOverflow.bmp"); 
set_display_coordinate_mode(CHARACTER_MODE); 

использует логотип, который составляет 128 х 64 пикселей и результаты:

put_BMP result

+1

В чем разница между CHARACTER_MODE и PIXEL_MODE? – farshid

+2

Все, что я знаю, это то, что API, которые имеют дело с манипулированием необработанными пикселями, требуют PIXEL_MODE и API, которые управляют экраном с использованием символов ASCII, требуют CHARACTER_MODE. Я собираюсь предположить, что API, которые не взаимодействуют с консолью, не волнует, в каком режиме вы находитесь, но я никогда не экспериментировал с ним. Я могу точно сказать, что CHARACTER_MODE является стандартным и работает для подавляющего большинства вызовов. Мне жаль, что это лучший ответ, который у меня есть ... – David

 Смежные вопросы

  • Нет связанных вопросов^_^