Вставка картинок в Pascal |
1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!
Вставка картинок в Pascal |
Katja |
Сообщение
#1
|
Гость |
Подскажите пожалуйста, как вставить bmp картинку в Borland Pascal
|
Altair |
Сообщение
#2
|
Ищущий истину Группа: Пользователи Сообщений: 4 825 Пол: Мужской Реальное имя: Олег Репутация: 45 |
Стандартных процедур в Паскале нет, надо использовать специальные модули, такие модули можно найти в интернете, даже на этом форуме я выкладывал модуль
BMP в разделе "Тестовый форум" тема TEST с автором Oleg_z Чтобы использовать этот модуль, его надо откомпилировать, (COMPILE->Destination disk, COMPILE->COMPILE), а в своей программе в сроке USES прописать его, тогда станет доступна процедура SBMI(FILEname:string; X,Y:Word; FDR:Integer), где FILEname - путь к BMP файлу, X,Y -координаты экрана, начиная с которых надо выводить рисунок( т.е если X=0, Y=0, то рисунок будет выведен в верхнем левом углу) FDR - число показывающая смещение цвета, если вам нужно вывести рисунок такой, какой он виден в PAINT , то FDR равен 0 ----------------------------- Если вас интерисует структура BMP фала, то такую информацию легко найти в интеренте: http://www.wotsit.org - там есть описание многих типов файлов -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
CJ |
Сообщение
#3
|
Пионер Группа: Пользователи Сообщений: 84 Пол: Мужской Репутация: 2 |
Качай с моего сайта модуль для работы с bmp и никаких проблем!
-------------------- * Origin: "It's MY LIFE!!! © Jhon Bon Jovi"
|
яЕПЦХЕМЙН юМРНМ |
Сообщение
#4
|
Гость |
help me ъ ОПХДСЛЮК ЙПСРНИ ЛЕРНД ЯФЮРХЪ ЦПЮТХВЕЯЙНИ ХМТНПЛЮЖХХ. еЯКХ ОНКСВХРЯЪ РН НМ ОЕПЕОКЧМЕР БЯЕ ЦХТШ, ДФЕОЕЕЦХ Х Р. Д. оПХ ЩРНЛ ОПНЖЕМР ОНРЕПХ ХМТНПЛЮЖХХ 0 ОПНЖЕМРНБ. бНГЛНФМН Ъ Х НЬХАЮЧЯЭ, МН ОПЕДБЮПХРЕКЭМШЕ ПЮЯЯВЕРШ ОНЙЮГЮКХ, ВРН РЮЙ ХЛЕММН Х АСДЕР.
ъ ГМЮЧ delphi мн ъ ме гмюч йюй напюрхрэяъ й йюфдни рнвйе BMP ТЮИКЮ, Х ЙЮЙ ОНРНВЕВМН ЯНГДЮРЭ МНБШИ ТЮИК.. онлн-н-н-н-цхре!! sergienkoanton@mail.ru |
APAL |
Сообщение
#5
|
Смотрю... Группа: Пользователи Сообщений: 1 055 Пол: Мужской Реальное имя: Пшеничный Алексей Анатольевич Репутация: 6 |
Перевожу:
Цитата help me Я придумал крутой метод сжатия графической информации. Если получится то он переплюнет все гифы, джепееги и т. д. При этом процент потери информации 0 процентов. Возможно я и ошибаюсь, но предварительные рассчеты показали, что так именно и будет. Я знаю delphi НО Я НЕ ЗНАЮ КАК ОБРАТИТЬСЯ К КАЖДОЙ ТОЧКЕ BMP файла, и как поточечно создать новый файл.. ПОМО-О-О-О-ГИТЕ!! sergienkoanton@mail.ru -------------------- |
Altair |
Сообщение
#6
|
Ищущий истину Группа: Пользователи Сообщений: 4 825 Пол: Мужской Реальное имя: Олег Репутация: 45 |
Ачто за кодировка?
APAL, ты у нас прямо перекодировщик Антон, а про метод сжатия можно подробнее? (юМРНМ=Антон) -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
APAL |
Сообщение
#7
|
Смотрю... Группа: Пользователи Сообщений: 1 055 Пол: Мужской Реальное имя: Пшеничный Алексей Анатольевич Репутация: 6 |
Цитата(Oleg_Z @ 21.10.04 12:46) Ачто за кодировка? APAL, ты у нас прямо перекодировщик KOI Так показал Штирлиц вер.4 -------------------- |
Altair |
Сообщение
#8
|
Ищущий истину Группа: Пользователи Сообщений: 4 825 Пол: Мужской Реальное имя: Олег Репутация: 45 |
А у меня 4.01 версия... У меня тоже. (APAL)
кстати КОИ - международный сетевой стандарт, не понимаю, почему весь рунет почти на вин кодироке... -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
xds |
Сообщение
#9
|
N337 Группа: Пользователи Сообщений: 737 Пол: Мужской Репутация: 26 |
Прошу прощения за оффтоп, даже БК-001x использует КОИ8-Р
-------------------- The idiots are winning.
|
P@sh@ |
Сообщение
#10
|
Бывалый Группа: Пользователи Сообщений: 180 Пол: Мужской Репутация: 2 |
яЕПЦХЕМЙН юМРНМ
BMP-файл состоит из трех основных блоков: заголовок, палитра, массив пикселей. в заголовке задаются размеры, цветность. если цвет 24 или 32 бита, то палитра не нужна и массив будет не из байтов-номеров цветов, а из самих цветов, 3х или 4х-байтовых... с 15/16-битным цветом вроде бы и так и так можно делать, хотя по идее тоже без палитры должно быть, не знаю... проще всего сделать с 32-битным цветом: Код var data: array of TColor; //или просто of integer //это будет массив точек head: TBMPHeader; //это заголовок файла, структуру не помню, поищи на форуме загружаешь данные из файла: Код blockread(f,head,sizeof(head)); setlength(data,head.Height,head.Width); blockread(f,data,head.Height*head.Width*4); изменяешь заголовок head и массив data как хочешь... запись делается аналогично с помощью blockwrite только надо учитывать, что обычно картинка в BMP-файле хранится вверх ногами... и теоретически картинка может быть сжата (например алгоритмом RLE, это указывается в заголовке), хотя я сжатых BMP ни разу не видел |
xds |
Сообщение
#11
|
N337 Группа: Пользователи Сообщений: 737 Пол: Мужской Репутация: 26 |
Цитата(P@sh@ @ 22.10.04 10:30) Код var data: array of TColor; //или просто of integer Код setlength(data,head.Height,head.Width); а) только не в BP; б) в общем солучае SizeOf(Integer) <> 4, а SizeOf(LongInt) = 4 В BP придется так: Код type PBitmapData = ^TBitmapData; TBitmapData = array[0..0] of record r, g, b, Res: Byte; end; var Data: PBitmapData; DataSize: Word; Hdr: TBitmapHdr; ... BlockRead(f, Hdr, SizeOf(Hdr)); DataSize := Hdr.Width * Hdr.Height shl 2; GetMem(Data, DataSize); BlockRead(f, Data^, DataSize); ... -------------------- The idiots are winning.
|
P@sh@ |
Сообщение
#12
|
Бывалый Группа: Пользователи Сообщений: 180 Пол: Мужской Репутация: 2 |
xds
а он написал, что знает Delphi, вот я и решил, что он на нем будет делать ;) |
murphy |
Сообщение
#13
|
Пионер Группа: Пользователи Сообщений: 98 Пол: Мужской Репутация: 0 |
Oleg_Z
Цитата SBMI(FILEname:string; X,Y:Word; FDR:Integer), чего то у меня не получилось... Код program test; uses bmp, graph, crt; var gd,gm:integer; begin gd:=detect; initgraph(gd,gm,'D:\TP_71\TP\bgi'); {bar(0,0,20,20);} SBMI('D:\P.bmp', 0, 0,0 ); readkey; end. выводит неизвестно что... Сообщение отредактировано: murphy - -------------------- collect the infotrons and find Exit
|
SKVOZNJAK |
Сообщение
#14
|
Профи Группа: Пользователи Сообщений: 930 Пол: Мужской Репутация: 11 |
Бмп разные бывают, может этот модуль не все правильно воспринимает. Скажем, не читает информацию (описание) в начале файла, а сразу выводит "мясо" на экран. Попробуй нарисовать простейший бмп из 2-3 вертикальных полосок в разных графических редакторах и разных форматах.
|
murphy |
Сообщение
#15
|
Пионер Группа: Пользователи Сообщений: 98 Пол: Мужской Репутация: 0 |
Шо я только не пробовал. :p6:
:ypr: -------------------- collect the infotrons and find Exit
|
Altair |
Сообщение
#16
|
Ищущий истину Группа: Пользователи Сообщений: 4 825 Пол: Мужской Реальное имя: Олег Репутация: 45 |
Дык надо графический драйвер нестандартный - VESA256 или SVGA256
(в тесовом форуме все есть) -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
murphy |
Сообщение
#17
|
Пионер Группа: Пользователи Сообщений: 98 Пол: Мужской Репутация: 0 |
Oleg_Z
Скачал VESA256 что мне изменить здесь Код gd:=detect; initgraph(gd,gm,'D:\TP_71\TP\bgi'); чтобы работало ? :p2: З.Ы. я не совсем с дровами разобрался -------------------- collect the infotrons and find Exit
|
volvo |
Сообщение
#18
|
Гость |
murphy
Я же, по-моему, в тестовом форуме давал: Код var dg, dm: integer; ... gd:=installuserdriver('VESA256',nil); initgraph(gd,gm,''); if graphresult <> grok then halt; ... Сообщение отредактировано: volvo - |
murphy |
Сообщение
#19
|
Пионер Группа: Пользователи Сообщений: 98 Пол: Мужской Репутация: 0 |
volvo
Ну да :p2: :p2: :p2: Offtop У volvo класный аватар :D -------------------- collect the infotrons and find Exit
|
murphy |
Сообщение
#20
|
Пионер Группа: Пользователи Сообщений: 98 Пол: Мужской Репутация: 0 |
только у меня прога сразу вылетает когда запускаю
-------------------- collect the infotrons and find Exit
|
Текстовая версия | 4.05.2024 14:35 |