Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Теоретические вопросы _ Вывод BMP

Автор: kapusta 26.03.2007 16:29

Помогите пожалуйста, нужно вывести изображение бмп в заданных координатах. Я читал фак, скачал модуль BMP, но разобраться в нём не могу. Можете привести совсем простой пример, например вывести изображение с диска в координатах х и у с помощью этого модуля? Мне главное суть понять...

Автор: volvo 26.03.2007 16:59

Уточнить, какой именно модуль для отрисовки BMP качал, и в каком режиме собираешься работать (разрешение + количество цветов) можно?

Автор: kapusta 26.03.2007 17:58

Качал отсюда http://forum.pascal.net.ru/index.php?showtopic=4533 вот этот "Модуль для вывода BMP 16, 256 цветов. (автор: Altair (aka Oleg_Z) )" Разрешение впринципе не важно, изображения не больше 256х256, цветов, как я понял, там 256.

Автор: volvo 26.03.2007 18:07

Поскольку ты так и не сказал, в каком режиме ты работаешь, и скольки цветный BMP-файл, то...

{ ... инициализация граф. режима }
SBMI('test.bmp', 10, 10, 0);
...

должно отобразить файл test.bmp начиная с позиции 10, 10... Больше ничего сказать не могу, я не телепат.

Автор: kapusta 26.03.2007 18:30

Всмысле режиме? я пробывал и в графическом и в текстовом - чёрный экран, ничего.. Я пытаюсь отобразить бмп 256х256, глубина цвета 16, 71 пиксель\дюйм...

Автор: Altair 26.03.2007 20:51

Цитата
я пробывал и в графическом и в текстовом

Нужен SVGA или VESA драйвер и соотвественно SVGA или VESA графический режим с 256 цветами.

Автор: volvo 26.03.2007 20:58

BGI-файлы забирай здесь:
http://forum.pascal.net.ru/index.php?showtopic=3921&st=0&p=34522&#entry34522
(svga256 / vesa256)

Подключать и использовать - так:

...
gd:=installuserdriver('vesa256',nil);
initgraph(gd,gm,'');
err := graphresult;
if err <> grok then begin
writeln('error: ', grapherrormsg(err));
readln; halt;
end;
SBMI('test.bmp', 10, 10, 0);
...
(BGI файл лежит в рабочей директории, т.е. там же где и исходник)

Автор: kapusta 26.03.2007 21:48

Пишет, invalid device driver file (D:/vesa2.bgi). Он его находит но не признаёт. Впринципе у меня получилось вывести 8-битный рисунок в простом графическом режиме, только все цвета перепутаны... неудобно конечно но лучше чем ничего. Спасибо.

Автор: Altair 26.03.2007 23:35

Цитата
Пишет, invalid device driver file (D:/vesa2.bgi).

Проверь атрибуты файла драйвера, если есть Read Only (только чтение) - сними!

Если повториться ошибка, скачай снова файл, может повредился...

Если ошибка сохранится, попробуй в строке initgraph(gd,gm,''); поиграться с gm, изменяя от 0 до 3 параметр gm

Автор: kapusta 27.03.2007 14:15

Пробывал поставить и vesa256 и svga256, всё одно и тоже, дело похоже не в самих драйверах... Пробывал менять gm - ничего не меняеется. Может, это из-за того что я их переименовавою в vesa2 и svga2 соответственно?(У меня паскаль не видит название файла после 5-го символа в названии)

Автор: volvo 27.03.2007 14:17

Цитата
У меня паскаль не видит название файла после 4-го символа в названии
Что ж за Паскаль-то такой? Меняй срочно. Должен видеть 8.3 как минимум...

А насчет файла - можешь запаковать и присоединить тот файл, который у тебя не получается открыть?

Автор: kapusta 3.04.2007 18:18

Нет, дело не в самом файле, в обычном графическом режиме этот файл открывается, но все цвета перепутаны. Именно не инвертированы, а перепутаны..