Instrukcja 3
Cel ćwiczenia : Napisać program wyświetlający proste efekty graficzne.
Rys. 1 Widok formularza z umieszczonymi komponentami
W programie Paint utworzyć dowolny rysunek w kolorze i zapisać go w formacie bmp, 256 kolorów.
Uruchomić Delphi.
Na formularzu umieścić komponent Image. Ustawić następujące własności:
Width : 400
Height : 400
Umieścić na formularzu 3 komponenty Button i komponent OpenPictureDialog. Nazwy pozostawić domyślne. Właściwości Caption ustawić według tabeli:
Nazwa komponentu: |
Caption: |
Button1 |
Wczytaj z pliku |
Button2 |
Negatyw |
Button3 |
Przeksztalcenie przez dyskryminacje |
Wygenerować zdarzenie OnClick dla komponentu Button1 i umieścić w nim następujący kod:
procedure TForm1.Button1Click(Sender: TObject);
begin
if OpenPictureDialog1.Execute then begin
Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName);
end;
end;
Wygenerować zdarzenie OnClick dla komponentu Button2 i umieścić w nim następujący kod:
procedure TForm1.Button2Click(Sender: TObject);
var
x,y : integer;
LinePtr : PByteArray;
begin
with Image1.Canvas do begin
for y:=0 to Image1.Picture.Height-1 do begin
LinePtr:=Image1.Picture.Bitmap.ScanLine[y];
for x:=0 to Image1.Picture.Width-1 do
LinePtr[x]:=255-LinePtr[x];
end;
end;
Image1.Refresh;
end;
Wygenerować zdarzenie OnClick dla komponentu Button3 i umieścić w nim następujący kod:
procedure TForm1.Button3Click(Sender: TObject);
var
x,y : integer;
LinePtr : PByteArray;
begin
with Image1.Canvas do begin
for y:=0 to Image1.Picture.Height-1 do begin
LinePtr:=Image1.Picture.Bitmap.ScanLine[y];
for x:=0 to Image1.Picture.Width-1 do begin
if LinePtr[x] > 128 then
LinePtr[x] := 255
else
LinePtr[x] :=0;
end;
end;
end;
Image1.Refresh;
end;
8. Skompilować i uruchomić program.
2