Перейти к содержанию

Как создать рисунок в Paskal (помогите пож. до 02.05.09 очень надо)


Рекомендуемые сообщения

unit bmpread; {процедуры для работы с Bmp}

interface

type

artype = array[0..0]of byte;

arptr = ^artype;

bmFileHeader = record {заголовок файла}

Typf : word; {сигнатура }

Size : longint; {длина файла в байтах}

Res1 : word; {зарезервировано}

Res2 : word; {зарезервировано}

OfBm : longint;

{смещение изображения в байтах (1078)}

end;

bmInfoHeader = record {информационный заголовок}

Size : longint; {длина заголовка в байтах (40)}

Widt : longint; {ширина изображения (в точках)}

Heig : longint; {высота изображения (в точках)}

Plan : word; {число плоскостей (1)}

BitC : word; {глубина цвета (бит на точку) (8)}

Comp : longint; {тип компрессии (0 - нет)}

SizI : longint; {размер изображения в байтах}

XppM : longint; {горизонтальное разрешение}

{(точек на метр - обычно 0)}

YppM : longint; {вертикальное разрешение}

{(точек на метр - обычно 0)}

NCoL : longint; {число цветов}

{(если максимально допустимое - 0)}

NCoI : longint; {число основных цветов}

end;

bmHeader = record {полный заголовок файла}

f : bmFileHeader; {заголовок файла}

i : bmInfoHeader; {информационный заголовок}

p : array[0..255,0..3]of byte; {таблица палитры}

end;

bmhptr = ^bmHeader;

procedure ReadBMP(image:arptr; {массив с изображением}

xim,yim:word; {размеры}

pal:arptr; {палитра}

filename:string); {имя файла}

{чтение изображения из Bmp-файла}

procedure ReadBMPheader(header:bmhptr;filename:string);

{чтение заголовка Bmp-файла}

implementation

{$R-}

{чтение изображения из Bmp-файла}

procedure ReadBMP(image:arptr; xim,yim:word; pal:arptr; filename:string);

var

h : bmHeader;

i : integer;

bmpfile : file;

s : longint;

begin

assign(bmpfile,filename);

reset(bmpfile,1);

blockread(bmpfile,h,sizeof(h)); {чтение заголовка}

for i := 0 to yim-1

do begin {построчное чтение}

blockread(bmpfile,image^[(yim-i-1)*xim],xim);

if (xim mod 4) <> 0

then blockread(bmpfile,s,4 - (xim mod 4));

end;

close(bmpfile);

for i := 0 to 255

do begin {преобразование палитры}

pal^[i*3+2] := h.p[i,0] shr 2; {синий}

pal^[i*3+1] := h.p[i,1] shr 2; {зеленый}

pal^[i*3+0] := h.p[i,2] shr 2; {красный}

end;

end;

{чтение заголовка Bmp-файла}

procedure ReadBMPheader(header:bmhptr;filename:string);

var

bmpfile:file;

begin

assign(bmpfile,filename);

reset(bmpfile,1);

blockread(bmpfile,header^,sizeof(header^));

close(bmpfile);

end;

end.

Ссылка на комментарий

uses graph; {наша библиотечка с графикой}

var

gd,gm:integer; {gd-драйвер, gm-режим}

begin

gd:=detect; {определяем драйвер, режим по умолчанию взависимости от драйвера}

initgraph(gd,gm,'c:\tp7\bgi'); {путь до файлов инициализации, не забудь сменить мой path :) }

{список операторов работы с графическим режимом}

closegraph;{закрыли графический режим, вернулись в исходный режим}

end.

P.S. как то вот не работал с бмп файлами в паскале... :)

P.P.S. список функций: arc,circle,ellipse,getarccoord,getaspectratio,pieslice,bar,bar3d,setfillpattern,setfillstyle,setlinestyle,line,putpixel,getimage,getpixel,putimage...... там еще есть все что вспомнил написал :) думаю через внутренний хелп список переменных найдешь сам :)

Ссылка на комментарий

Пожалуйста, войдите, чтобы комментировать

Вы сможете оставить комментарий после входа в



Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...