drawing.pp 2.0 KB

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