Как увидеть изображение?

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

Борис68
Сообщения: 8
Зарегистрирован: 14 апр 2009, 22:33

Я перенёс (ссчитал) по точкам изображение (растр), полученное в графическом режиме Pascal-программы в файл с помощью функции GetPixel. Как мне теперь это изображение визуализировать, не прибегая к услугам Pascal?
(Вариант: Как преобразовать полученный файл в файл изображения, например, в файл “bmp”?)
Аватара пользователя
demon416
Сообщения: 178
Зарегистрирован: 30 янв 2006, 14:03
Откуда: kirovskoe

Прогу и пример файла в студию
ака хинт: коментируйте код, самим же легче будет разобраться ;)
Аватара пользователя
Игорь Акопян
Сообщения: 1440
Зарегистрирован: 13 окт 2004, 17:11
Откуда: СПБ
Контактная информация:

читать формат файла, например, BMP, объявить соответствующую структуру, заполнить её нужным образом и сохранить.
Изображение
Аватара пользователя
somewhere
Сообщения: 1858
Зарегистрирован: 31 авг 2006, 17:14
Откуда: 71 RUS
Контактная информация:

а самый лучший вариант - запустить прогу под дос-эмулятором и PrintScrn
It's a long way to the top if you wanna rock'n'roll
Борис68
Сообщения: 8
Зарегистрирован: 14 апр 2009, 22:33

demon416 писал(а):Прогу и пример файла в студию
Вот она; прога:

uses crt,graph;
const tx: string[20]='D:\BP\Graf\Proba';
dr,md : integer; Wg : word;
Fa : file of word; {описание файла}

Begin
assign(Fa,tx); Rewrite(Fa); {Подготовка файла к записи}

dr:=Detect; Initgraph(dr,md,d:\bp\bgi'); {Графический режим}

{Создаю изображение и переписываю содержимое экрана по точкам в файл:}
Seek(Fa,0);
for j:=479 downto 0 do
for w:=0 to 639 do begin Wg:=GetPixel(w, j); write(Fa,Wg) end;
Closegraph;
Close(Fa);
End.
Пример файла - это набор чисел. Могу файл прислать, но не знаю как.

Somewhere. "а самый лучший вариант - запустить прогу под дос-эмулятором и PrintScrn "

Я бы и рад так поступить, но работаю из под Windows XP, а там, в графическом режиме Паскаля, экран клавишей PrintScreen не копируется.
Аватара пользователя
somewhere
Сообщения: 1858
Зарегистрирован: 31 авг 2006, 17:14
Откуда: 71 RUS
Контактная информация:

Блин, ПОД ЭМУЛЯТОРОМ, а не через cmd
It's a long way to the top if you wanna rock'n'roll
Аватара пользователя
mc-black
Сообщения: 250
Зарегистрирован: 08 май 2008, 16:09
Откуда: Россия, Нижний Новгород
Контактная информация:

MSDN: Bitmaps
На заказ: VBA, Excel mc-black@yandex.ru
Борис68
Сообщения: 8
Зарегистрирован: 14 апр 2009, 22:33

somewhere писал(а):Блин, ПОД ЭМУЛЯТОРОМ, а не через cmd
Понял, что у меня в части “ДОС - эмулятора” пробел в образовании. Попробовал восполнить этот пробел через Интернет. Но чёткой, внятной информации не нашёл (возможно, не там искал). В связи с этим вопросы:
1.Можно ли с помощью ДОС – эмулятора получить снимок экрана в графическом режиме Pascal-программы, работающей под Windows XP?
2.Можно ли этот снимок сохранить и потом просмотреть вне Pascal?
3.Если на первые два вопроса ответ положительный, то где достать и как установить этот самый ДОС – эмулятор.
4.Где можно прочитать об этом чуде – юде внятную информацию (для чайников)?
Аватара пользователя
demon416
Сообщения: 178
Зарегистрирован: 30 янв 2006, 14:03
Откуда: kirovskoe

гугли dosbox
ака хинт: коментируйте код, самим же легче будет разобраться ;)
Борис68
Сообщения: 8
Зарегистрирован: 14 апр 2009, 22:33

Игорь Акопян писал(а):читать формат файла, например, BMP, объявить соответствующую структуру, заполнить её нужным образом и сохранить.
Сегодня я уже имею чёрно-белое изображение, заданное (в файле типа “byte”) массивом “1” и “0”. Размер массива 640*480 чисел.
Попытался сделать из этого массива BMP-файл. Сделал заголовок bmp файла с сигнатурой “BM”, сделал информационный заголовок с описанием параметров будущего bmp-файла, потом переписал в этот файл массив чисел с изображением.
Стал смотреть и естественно ничего не получилось. При просмотре клавишей “F4” даже не увидел сигнатуру. Причина, в общем то, понятна; я, по-видимому, неправильно записал сигнатуру и использовал неправильную палитру для чёрно-белого изображения.
Я почти уверен, что существуют готовые программы, которые мою задачу в вышеописанной постановке решают.
Осталось только такую программу найти. Ведь рваться через тернии к звёздам нерентабельно; только время потеряешь.
Ответить