123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- {$mode objfpc}{$h+}
- program Drawing;
- uses classes, sysutils,
- FPImage, FPCanvas, FPImgCanv,
- FPWritePNG, FPReadPNG;
- const
- MyColor : TFPColor = (Red: $7FFF; Green: $0000; Blue: $FFFF; Alpha: alphaOpaque);
- procedure DoDraw;
- var canvas : TFPcustomCAnvas;
- ci, image : TFPCustomImage;
- writer : TFPCustomImageWriter;
- reader : TFPCustomImageReader;
- begin
- image := TFPMemoryImage.Create (100,100);
- ci := TFPMemoryImage.Create (20,20);
- Canvas := TFPImageCanvas.Create (image);
- Writer := TFPWriterPNG.Create;
- reader := TFPReaderPNG.Create;
- with TFPWriterPNG(Writer) do
- begin
- indexed := false;
- wordsized := false;
- UseAlpha := false;
- GrayScale := false;
- end;
- try
- ci.LoadFromFile ('test.png', reader);
- with Canvas as TFPImageCanvas do
- begin
- pen.mode := pmCopy;
- pen.style := psSolid;
- pen.width := 1;
- pen.FPColor := colred;
- with pen.FPColor do
- red := red div 4;
- Ellipse (10,10, 90,90);
- pen.style := psDashDot;
- pen.FPColor := colred;
- HashWidth := 10;
- Ellipse (10,10, 90,90);
- with pen.FPColor do
- begin
- red := red div 2;
- green := red div 4;
- blue := green;
- end;
- pen.style := psSolid;
- RelativeBrushImage := true;
- brush.image := ci;
- brush.style := bsimage;
- with brush.FPColor do
- green := green div 2;
- Ellipse (11,11, 89,89);
- brush.style := bsSolid;
- brush.FPColor := MyColor;
- pen.style := psSolid;
- pen.width := 3;
- pen.FPColor := colSilver;
- ellipse (30,35, 70,65);
- pen.width := 1;
- pen.FPColor := colCyan;
- ellipseC (50,50, 1,1);
- writeln ('Saving to inspect !');
- end;
- image.SaveToFile ('DrawTest.png', writer);
- finally
- Canvas.Free;
- image.Free;
- writer.Free;
- ci.free;
- reader.Free;
- end;
- end;
- begin
- // DefaultFontPath := 'c:\winnt\fonts\';
- DoDraw;
- end.
|