drawing.pp 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. {$mode objfpc}{$h+}
  2. program Drawing;
  3. uses classes, sysutils,
  4. FPImage, FPCanvas, FPImgCanv,
  5. FPWritePNG, FPReadPNG;
  6. const
  7. MyColor : TFPColor = (Red: $7FFF; Green: $0000; Blue: $FFFF; Alpha: alphaOpaque);
  8. procedure DoDraw;
  9. var canvas : TFPcustomCAnvas;
  10. ci, image : TFPCustomImage;
  11. writer : TFPCustomImageWriter;
  12. reader : TFPCustomImageReader;
  13. begin
  14. image := TFPMemoryImage.Create (100,100);
  15. ci := TFPMemoryImage.Create (20,20);
  16. Canvas := TFPImageCanvas.Create (image);
  17. Writer := TFPWriterPNG.Create;
  18. reader := TFPReaderPNG.Create;
  19. with TFPWriterPNG(Writer) do
  20. begin
  21. indexed := false;
  22. wordsized := false;
  23. UseAlpha := false;
  24. GrayScale := false;
  25. end;
  26. try
  27. ci.LoadFromFile ('test.png', reader);
  28. with Canvas as TFPImageCanvas do
  29. begin
  30. pen.mode := pmCopy;
  31. pen.style := psSolid;
  32. pen.width := 1;
  33. pen.FPColor := colred;
  34. with pen.FPColor do
  35. red := red div 4;
  36. Ellipse (10,10, 90,90);
  37. pen.style := psDashDot;
  38. pen.FPColor := colred;
  39. HashWidth := 10;
  40. Ellipse (10,10, 90,90);
  41. with pen.FPColor do
  42. begin
  43. red := red div 2;
  44. green := red div 4;
  45. blue := green;
  46. end;
  47. pen.style := psSolid;
  48. RelativeBrushImage := true;
  49. brush.image := ci;
  50. brush.style := bsimage;
  51. with brush.FPColor do
  52. green := green div 2;
  53. Ellipse (11,11, 89,89);
  54. brush.style := bsSolid;
  55. brush.FPColor := MyColor;
  56. pen.style := psSolid;
  57. pen.width := 3;
  58. pen.FPColor := colSilver;
  59. ellipse (30,35, 70,65);
  60. pen.width := 1;
  61. pen.FPColor := colCyan;
  62. ellipseC (50,50, 1,1);
  63. writeln ('Saving to inspect !');
  64. end;
  65. image.SaveToFile ('DrawTest.png', writer);
  66. finally
  67. Canvas.Free;
  68. image.Free;
  69. writer.Free;
  70. ci.free;
  71. reader.Free;
  72. end;
  73. end;
  74. begin
  75. // DefaultFontPath := 'c:\winnt\fonts\';
  76. DoDraw;
  77. end.