1
Instrukcja 3
Cel ćwiczenia : Napisać program wyświetlający proste efekty graficzne.
Rys. 1 Widok formularza z umieszczonymi komponentami
1. W programie Paint utworzyć dowolny rysunek w kolorze i zapisać go w formacie
bmp, 256 kolorów.
2. Uruchomić Delphi.
3. Na formularzu umieścić komponent Image. Ustawić następujące własności:
• Width : 400
• Height : 400
4. 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
5. Wygenerować zdarzenie OnClick dla komponentu Button1 i umieścić w nim
następujący kod:
2
procedure TForm1.Button1Click(Sender: TObject);
begin
if OpenPictureDialog1.Execute then begin
Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName);
end;
end;
6. 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;
7. 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.