Автор: Пользователь скрыл имя, 26 Февраля 2013 в 20:51, дипломная работа
Комп’ютерна графіка — це двовимірні зображення, які створюються, перетворюються, оцифровуються, обробляються і відображаються засобами обчислювальної техніки, включаючи апаратні і програмні засоби. Рухома комп'ютерна графіка називається комп’ютерним відео або комп’ютерною анімацією.
ВСТУП……………………………………………………………...……………5
РОЗДІЛ 1 ТЕОРЕТИЧНА ЧАСТИНА ………………………………………...6
1.1 Комп'ютерна графіка……………………………………….….6
1.2 Растрова графіка……………………………………………….7
1.3 Векторна графіка………………………………….………….13
1.4 Формати графічних файлів …………………………………17
1.5 Алгоритми масштабування………………………………….18
1.5.1 EPX/Scale2x/AdvMAME2x…………………...……..21
1.5.2 Eagle Eagle………………………….……………..….22
1.5.3 2xSaI…………………………….………………….…23
1.5.4 Сімейство hqnx………………………………………23
1.5.5 Алгоритм в Паскалі………………………………….24
1.5.6 Алгоритм Копф-Ліщинський……………………….24
1.5.7 Застосування в емуляторах ігрових приставок……24
РОЗДІЛ 2 ПРАКТИЧНА ЧАСТИНА…………………………………………26
2.1 Програма в роботі………………………………………….…26
ВИСНОВКИ........................................................................................................33
ПЕРЕЛІК ВИКОРИСТАНИХ ДЖЕРЕЛ………………………………...……34
ДОДАТОК…………………………
for yp := 0 to 1 do
for xp := 0 to 1 do begin
pix := BM.Canvas.Pixels[xo + xp, yo + yp];
c[xp, yp, 0] := GetRValue(pix);
c[xp, yp, 1] := GetGValue(pix);
c[xp, yp, 2] := GetBValue(pix);
end;
for col := 0 to 2 do begin
k1 := (c[1,0,col] - c[0,0,col]) / dx;
z1 := x * k1 + c[0,0,col] - x1 * k1;
k2 := (c[1,1,col] - c[0,1,col]) / dx;
z2 := x * k2 + c[0,1,col] - x1 * k2;
k := (z2 - z1) / dy;
res[col] := round(y * k + z1 - y1 * k);
end;
bm1.Canvas.Pixels[x,y] := RGB(res[0], res[1], res[2]);
end;
Form1.Gauge1.Progress := round(100 * y / bm1.Height);
Application.ProcessMessages;
if Application.Terminated then Exit;
end;
Form1.Gauge1.Progress :=0;
Form1.Image1.Width:=BM1.Width;
Form1.Image1.Height:=Bm1.
Form1.Image1.Picture.Graphic:=
end;
procedure TForm1.N2Click(Sender: TObject);
begin
Bm:=Tbitmap.Create;
Image1.AutoSize:=True;
If OpenPictureDialog1.Execute then begin
Image1.Picture.LoadFromFile(
BM.LoadFromFile(
end;
end;
procedure TForm1.N4Click(Sender: TObject);
begin
SavePictureDialog1.FileName := FileName;
If not SavePictureDialog1.Execute then exit;
FileName := SavePictureDialog1.FileName;
ColCount := Pos ('.', FileName);
if ColCount <= 0 then s := '.bmp';
FileName := FileName + s;
Image1.Picture.SaveToFile(
end;
procedure TForm1.N5Click(Sender: TObject);
begin
Close;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
BM.free;
end;
procedure TForm1.N7Click(Sender: TObject);
begin
try
dx:=strtofloat(Combobox1.Text) / 100;
dy:=strtofloat(Combobox2.Text) / 100;
t:=0;
if (dx>0.5) and (dx<0.76) and (dy>0.5) and (dy<0.76) then t:=1
else if (dx>0.6) and (dx<0.84) and (dy>0.76) and (dy<0.84) then t:=2
else if (dx>0.84) and (dx<0.88) and (dy>0.84) and (dy<0.88) then t:=3;
Interpolate(bm, dx, dy);
except
Showmessage('Ошибка:
Загрузите изображение, или
exit;
end;
end;
procedure TForm1.N8Click(Sender: TObject);
begin
Form1.Image1.Width:=BM.Width;
Form1.Image1.Height:=Bm.
Form1.Image1.Picture.Graphic:=
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
dx:= 1.0;
dy:= 1.0;
end;
end.
Информация о работе Розробка програми для масштабувания зображення