Превед Красавчеги!
Кто нибудь вообще знает как можно изображение, которое я вывел с помощью Graph сохранить в файле
с разрешением BMP? Подскажите пожалуйста, только, если не трудно, объясните толком.А то я по другому ни хрена не понимаю?
! | Красавчеги, медведы и креведки на удафф.ком и башорге. Нам и без них хорошо. Читай правила. |
Качаешь отсюда: http://forum.pascal.net.ru/index.php?s=&showtopic=4533&view=findpost&p=38204
модуль BMP_PLUS, подключаешь его к программе, и когда твоя картинка отрисована полностью - вызываешь Save_BMP...
Понятно.
Но тогда другой вопрос у меня возникает?
Можно ли в Паскале 7.0 вывести хотя бы 16-битное изображение на экран из bmp файла?
Если нет, то какой компилятор посоветуете?
Можно и больше 256 цветов... Когда-то были драйверы SVGA32K.BGI и SVGA64K.BGI, можешь попробовать Google, наверняка где-то сохранились и тестовые примеры...
http://pascal.sources.ru/graph/svga256.htm
Да но ведь если я беру больше 256 цветов, то процедуры, которые ты указал для вывода изображения не работают. Они пашут только под 8 битной графикой максимум. Что делать?
http://pascal.sources.ru/graph/psp23.htm
hicolor/truecolor режимы + bmp
что -то я не понял какую именно процедуру или функцию ты предлагаешь. Если функцию PutBmp из модуля
Images, так там изображение загружается из памяти. А мне то нужно из файла.
Можешь мне тогда объяснить как изображение в память засунуть?
var BMPPtr: Pointer;
...
BMPPtr:=LoadFile('чё_нить.bmp');
PutBMP(0,0,BMPPtr,false);
Короче я сделал всё как ты сказал.
Вот у меня получился такой код:
Uses Graph,Images,Memplus;
var BMPPtr: Pointer;
gd,gm:integer;
begin
Gd:=instaluserdriver ('svga64k',nil);
gm:=3;
InitGraph (gd,gm,'');
BMPptr:= Loadfile ('1.bmp');
PutBmp (0,0,BMPptr,false);
readln;
closeGraph;
end.
В 1-й строке.
Должно быть
uses MegaGraf,Images,MemPlus,Keyboard,Fonts,i80386;
if SetSVGAMode(640,480,grSVGA64k) then
// тут твоя графика
Вот почему то именно таким образом он выводит изображение 256 бит
на экран.Если я меняю режим 6 на 7 (grSVGA16M) (потому что мне нужно вывести 24 битный рисунок) все это пахать почему то перестает.Что за х.....?
Uses MegaGraf,Images,Memplus,Keyboard,Fonts,i80386;
var BMPPtr:pointer;
begin
BMPPtr:=loadfile ('t-256.bmp');
InitVBE;
SetMCGAMode;
if SetSVGAMode (640,480,6) then begin
PutBmp (0,0,BMPPtr,false);
end;
readln;
end.
Если я меняю режим 6 на 7 (grSVGA16M) (потому что мне нужно вывести 24 битный рисунок)
наконец то! Удалось вывести 16 битное изображение. Черт с этим 24-битным... Спасибо тебе Ozzя за помощь огромное!!!