Programozási alapismeretek (M1,M2) Kép beolvasása file-ból, nagyítása, kicsinyítése Horváth Győző & Papp-Varga Zsuzsanna
1. feladat: Rajzolás Panelra
Komponensek 1db TPanel, 1db TButton Properties Panel: Button:
Name: PanelProba Caption: Ez egy panel. Name: ButtonPRajzol Caption: Rajzolj a panelra!
Events ButtonPRajzol: onClick implementation uses FPimage; procedure TForm1.ButtonPRajzolClick(Sender: TObject); begin PanelProba.Canvas.Colors[10,10] := FPColor(65535,0,0); PanelProba.Canvas.Colors[20,10] := TColorToFPColor(2222); PanelProba.Canvas.Pixels[30,10] := RGBToColor(0, 255, 0); PanelProba.Canvas.Pixels[40,10] := 2222; end;
Programozási alapismeretek (M1,M2) Kép beolvasása file-ból, nagyítása, kicsinyítése Horváth Győző & Papp-Varga Zsuzsanna
2. feladat: Rajzolás képre
Komponensek 1db TImage, 1db TButton Properties Image: Button:
Name: ImageProba Name: ButtonIRajzol Caption: Rajzolj az imagere!
Events ButtonIRajzol: onClick procedure TForm1.ButtonIRajzolClick(Sender: TObject); begin ImageProba.Canvas.Colors[10, 10] := FPColor(65535, 65535, 65535); ImageProba.Canvas.Pixels[20, 10] := clWhite; ImageProba.Picture.Bitmap.Canvas.Colors[30, 10] := TColorToFPColor(clWhite); ImageProba.Picture.Bitmap.Canvas.Pixels[40, 10] := clWhite; end;
Programozási alapismeretek (M1,M2) Kép beolvasása file-ból, nagyítása, kicsinyítése Horváth Győző & Papp-Varga Zsuzsanna
3. feladat: Kép beolvasása file-ból
Komponensek 1db TOpenPictureDialog, 1db TButton Properties OpenPictureDialog: Name: TOpenPictureDialogProba Button: Name: ButtonBetolt Caption: Kép betöltése Events ButtonBetolt: onClick procedure TForm1.ButtonBetoltClick(Sender: TObject); begin if OpenPictureDialogProba.Execute then ImageProba.Picture.LoadFromFile(OpenPictureDialogProba.FileName); end;
Programozási alapismeretek (M1,M2) Kép beolvasása file-ból, nagyítása, kicsinyítése Horváth Győző & Papp-Varga Zsuzsanna
4. feladat: Kép másolása
Komponensek 1db TImage, 3db TButton Properties Image: Button:
Name: ImageEredmeny Name: ButtonMasol1/ ButtonMasol2/ ButtonMasol3 Caption: Másolás I./ Másolás II./ Másolás III.
Events ButtonMasol1: onClick procedure TForm1.ButtonMasol1Click(Sender: TObject); var bekep,kikep: TBitmap; x,y: integer; begin bekep:=ImageProba.Picture.Bitmap; kikep:=ImageEredmeny.Picture.Bitmap; kikep.Width:=bekep.Width; //szélesség kikep.Height:=bekep.Height; //magasság for x := 0 to bekep.Width-1 do for y := 0 to bekep.Height-1 do kikep.Canvas.Colors[x,y] := bekep.Canvas.Colors[x,y]; end;
ButtonMasol2: onClick procedure TForm1.ButtonMasol2Click(Sender: TObject); var bekep,kikep: TBitmap; x,y: integer; begin bekep:=ImageProba.Picture.Bitmap; kikep:=ImageEredmeny.Picture.Bitmap; kikep.Width:=bekep.Width; //szélesség kikep.Height:=bekep.Height; //magasság for x := 0 to bekep.Width-1 do for y := 0 to bekep.Height-1 do kikep.Canvas.Pixels[x,y] := bekep.Canvas.Pixels[x,y]; end;
Programozási alapismeretek (M1,M2) Kép beolvasása file-ból, nagyítása, kicsinyítése Horváth Győző & Papp-Varga Zsuzsanna
ButtonMasol3: onClick
kepseged.pas projekt mappába másolása implementation uses kepseged,…
procedure TForm1.ButtonMasol3Click(Sender: TObject); var kep: TPic; begin kep := TPic.Create(ImageProba); kep.Draw(ImageEredmeny); kep.Draw(PanelProba); kep.Destroy; end;
Programozási alapismeretek (M1,M2) Kép beolvasása file-ból, nagyítása, kicsinyítése Horváth Győző & Papp-Varga Zsuzsanna
5. feladat: Kicsinyítés
Komponensek 2db TButton Properties Button:
Name: ButtonKicsi1/ ButtonKicsi2 Caption: Kicsinyítés I./ Kicsinyítés II.
Events ButtonKicsi1: onClick procedure TForm1.ButtonKicsi1Click(Sender: TObject); var x,y: integer; begin with ImageProba.Picture.Bitmap do begin ImageEredmeny.Picture.Bitmap.Width:=Width div 2; ImageEredmeny.Picture.Bitmap.Height:=Height div 2; for x := 0 to (Width-1) div 2 do for y := 0 to (Height-1) div 2 do ImageEredmeny.Picture.Bitmap.Canvas.Pixels[x, y] := RGBToColor( (Red(Canvas.Pixels[x*2,y*2]) + Red(Canvas.Pixels[x*2+1,y*2]) + Red(Canvas.Pixels[x*2,y*2+1]) + Red(Canvas.Pixels[x*2+1,y*2+1])) div 4, (Green(Canvas.Pixels[x*2,y*2]) + Green(Canvas.Pixels[x*2+1,y*2]) + Green(Canvas.Pixels[x*2,y*2+1]) + Green(Canvas.Pixels[x*2+1,y*2+1])) div 4, (Blue(Canvas.Pixels[x*2,y*2]) + Blue(Canvas.Pixels[x*2+1,y*2]) + Blue(Canvas.Pixels[x*2,y*2+1]) + Blue(Canvas.Pixels[x*2+1,y*2+1])) div 4 ); end; end;
Programozási alapismeretek (M1,M2) Kép beolvasása file-ból, nagyítása, kicsinyítése Horváth Győző & Papp-Varga Zsuzsanna
ButtonKicsi2: onClick procedure TForm1.ButtonKicsi2Click(Sender: TObject); var x,y: integer; betkep, kitkep: TPic; begin with ImageProba.Picture.Bitmap do begin ImageEredmeny.Picture.Bitmap.Width:=Width div 2; ImageEredmeny.Picture.Bitmap.Height:=Height div 2; betkep := TPic.Create(ImageProba); kitkep := TPic.Create(ImageEredmeny); for x := 0 to (Width-1) div 2 do for y := 0 to (Height-1) div 2 do begin kitkep.Colors[x, y] := FPColor( (betkep.Colors[x*2,y*2].red + betkep.Colors[x*2+1,y*2].red + betkep.Colors[x*2,y*2+1].red + betkep.Colors[x*2+1,y*2+1].red) div 4, (betkep.Colors[x*2,y*2].green + betkep.Colors[x*2+1,y*2].green + betkep.Colors[x*2,y*2+1].green + betkep.Colors[x*2+1,y*2+1].green) div 4, (betkep.Colors[x*2,y*2].blue + betkep.Colors[x*2+1,y*2].blue + betkep.Colors[x*2,y*2+1].blue + betkep.Colors[x*2+1,y*2+1].blue) div 4) ; end; kitkep.Draw(ImageEredmeny); betkep.Destroy; kitkep.Destroy; end; end;
Programozási alapismeretek (M1,M2) Kép beolvasása file-ból, nagyítása, kicsinyítése Horváth Győző & Papp-Varga Zsuzsanna
6. feladat: Nagyítás
Komponensek 1db TButton Properties Button:
Name: ButtonNagy Caption: Nagyítás
Events ButtonNagy: onClick procedure TForm1.ButtonNagyClick(Sender: TObject); var x,y: integer; betkep, kitkep: TPic; begin with ImageProba.Picture.Bitmap do begin ImageEredmeny.Picture.Bitmap.Width:=Width * 2; ImageEredmeny.Picture.Bitmap.Height:=Height * 2; betkep := TPic.Create(ImageProba); kitkep := TPic.Create(ImageEredmeny); for x := 0 to Width-1 do begin for y := 0 to Height-1 do begin kitkep.Colors[x*2,y*2] := betkep.Colors[x,y]; kitkep.Colors[x*2+1,y*2] := betkep.Colors[x,y]; kitkep.Colors[x*2,y*2+1] := betkep.Colors[x,y]; kitkep.Colors[x*2+1,y*2+1] := betkep.Colors[x,y]; end; end; kitkep.Draw(ImageEredmeny); betkep.Destroy; kitkep.Destroy; end; end;