drawing.pp 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. {$mode objfpc}{$h+}
  2. program Drawing;
  3. uses
  4. {$IFDEF UNIX}cwstring,{$ENDIF} classes, sysutils, FPImage, FPCanvas, FPImgCanv, FPWritePNG, FPReadPNG;
  5. const
  6. MyColor : TFPColor = (Red: $7FFF; Green: $0000; Blue: $FFFF; Alpha: alphaOpaque);
  7. procedure DoDraw;
  8. var
  9. 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 ('pattern.png', reader);
  28. with Canvas as TFPImageCanvas do
  29. begin
  30. brush.FPcolor:=colwhite;
  31. brush.style:=bsSolid;
  32. pen.mode := pmCopy;
  33. pen.style := psSolid;
  34. pen.width := 1;
  35. pen.FPColor := colred;
  36. with pen.FPColor do
  37. red := red div 4;
  38. Ellipse (10,10, 90,90);
  39. pen.style := psDashDot;
  40. pen.FPColor := colred;
  41. HashWidth := 10;
  42. Ellipse (10,10, 90,90);
  43. with pen.FPColor do
  44. begin
  45. red := red div 2;
  46. green := red div 4;
  47. blue := green;
  48. end;
  49. pen.style := psSolid;
  50. RelativeBrushImage := true;
  51. brush.image := ci;
  52. brush.style := bsimage;
  53. with brush.FPColor do
  54. green := green div 2;
  55. Ellipse (11,11, 89,89);
  56. brush.style := bsSolid;
  57. brush.FPColor := MyColor;
  58. pen.style := psSolid;
  59. pen.width := 3;
  60. pen.FPColor := colSilver;
  61. ellipse (30,35, 70,65);
  62. pen.width := 1;
  63. pen.FPColor := colCyan;
  64. ellipseC (50,50, 1,1);
  65. end;
  66. writeln ('Saving to "DrawTest.png" for inspection !');
  67. image.SaveToFile ('DrawTest.png', writer);
  68. finally
  69. Canvas.Free;
  70. ci.free;
  71. image.Free;
  72. writer.Free;
  73. reader.Free;
  74. end;
  75. end;
  76. begin
  77. DoDraw;
  78. end.