Вывод картинки в Pascal

Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду

Аватара пользователя
Колядин Максим
Сообщения: 297
Зарегистрирован: 16 ноя 2006, 19:09
Откуда: Seattle, WA
Контактная информация:

Цитата:
Потом уже идет непосредственно рисование, всякие там line, rectangle, putpixel и т.д. - см. справку по модулю graph.tpu}
_____________________________________________________________________
Напомню, что мне нужно вывести на экран картинку с локального диска, а не рисовать всякие line, ellise, в программе. Можно ли в програмной среде отобразить картинку?
Программист - это человек, который решает способом, который вы не понимаете, проблемы, о которых вы даже не подозревали...
Аватара пользователя
somewhere
Сообщения: 1858
Зарегистрирован: 31 авг 2006, 17:14
Откуда: 71 RUS
Контактная информация:

&quot писал(а):Напомню, что мне нужно вывести на экран картинку с локального диска, а не рисовать всякие line, ellise, в программе. Можно ли в програмной среде отобразить картинку?
Есть очень простой способ вывести картинку, но там кое-где нужен ассемблер, VESA.BGI будет уже не нужен. Картинка будет выводиться с использованием VESA, но без драйвера на Паскале. Если интересно, могу написать как?

Опиши формат файла, если такого нет, то параметры рисунка (длина, ширина, глубина цвета)
Аватара пользователя
Колядин Максим
Сообщения: 297
Зарегистрирован: 16 ноя 2006, 19:09
Откуда: Seattle, WA
Контактная информация:

Цитата:
SOMWERE
Если интересно, могу написать как?
________________________________________________
Somwere, спасибо, конечно же интересно!!!
А свойства рисунка:
Имя: image01.jpg
ДлиннаХширина: 640x480
Глубина цвета: 24
Частота кадров: 1
В принцепе, мне любую цветную картинку надо.
Программист - это человек, который решает способом, который вы не понимаете, проблемы, о которых вы даже не подозревали...
Хыиуду
Сообщения: 2442
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

Если я не ошибаюсь в протоколе файла bmp, там сначала идет справочная информация, а потом уже байты, означающие цвет, причем задом наперед (с правого нижнего угла к левому верхнему). Поэтому, опять же, если не ошибаюсь, надо открыть файл как двоичный, пропустить нужное количество байт заголовка, потом считывать по три байта r,g,b и делать putpixel(...,...,rgb(r,g,b))
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Аватара пользователя
Колядин Максим
Сообщения: 297
Зарегистрирован: 16 ноя 2006, 19:09
Откуда: Seattle, WA
Контактная информация:

А как это "как двоичный"? И ещё, Хыиуду, Вы не могли бы немножечко поподробнее, ато я не очень вас понимаю... Но всё равно спасибо!
Программист - это человек, который решает способом, который вы не понимаете, проблемы, о которых вы даже не подозревали...
Аватара пользователя
somewhere
Сообщения: 1858
Зарегистрирован: 31 авг 2006, 17:14
Откуда: 71 RUS
Контактная информация:

&quot писал(а):пропустить нужное количество байт заголовка, потом считывать по три байта r,g,b и делать putpixel(...,...,rgb(r,g,b))
Это очччень долго, сначала читать по три байта, а потом и еще PutPixel - если б вы знали сколько времени тратиться на переключение банков видеопамяти... конечно 5 секунд не время на наших компах, но это не рационально. Завтра покажу прогу, ее дома в архивах надо покопать ну и доделать немного.
Кстати то, что файл в JPEG - если найдете декодер для Pascal - то будет просто вообще супер, а так BMP, ну и прочие непакованные форматы :-)
Аватара пользователя
somewhere
Сообщения: 1858
Зарегистрирован: 31 авг 2006, 17:14
Откуда: 71 RUS
Контактная информация:

&quot писал(а):А как это "как двоичный"?
Двоичный, значит не текстовый

Код: Выделить всё

var 
f  : file;
f1: file of byte; {word, any other type, used to specify structure}
Аватара пользователя
Колядин Максим
Сообщения: 297
Зарегистрирован: 16 ноя 2006, 19:09
Откуда: Seattle, WA
Контактная информация:

Спасибо за предоставленную информацию жду программы. Спасибо.
До завтра!
I'm waiting. . . . . .
Программист - это человек, который решает способом, который вы не понимаете, проблемы, о которых вы даже не подозревали...
Аватара пользователя
somewhere
Сообщения: 1858
Зарегистрирован: 31 авг 2006, 17:14
Откуда: 71 RUS
Контактная информация:

Вот текст проги, писал вслепую - проверить нет возможности, потому за недочеты прошу строго не судить.
Аватара пользователя
Колядин Максим
Сообщения: 297
Зарегистрирован: 16 ноя 2006, 19:09
Откуда: Seattle, WA
Контактная информация:

В процедуре SetVideoMode, в строке:
~~~~~~~
shr ah, 3
~~~~~~~
- выводится ошибка номер 159
"Error 159: 286/287 instructions are not enabled" , как исправить?
Пробывал "shr" на "mov" заменить, тогда программа запускается и невыдавая никакой ошибки выходит.
Если же повторить это же, для файла формата JPG,(все данные о свойствах рисунка я писал ранее), то программа отображает нечто непонятное (какие-то полоски разноцветные сверху) то же при условии что "shr" на "mov" заменить и изменить в assign на JPG -
assign(f,'001.jpg').
Somwere, помоги пожалуйста, очень надо...
Программист - это человек, который решает способом, который вы не понимаете, проблемы, о которых вы даже не подозревали...
Ответить