rmagick 2.13.2 → 4.2.2

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of rmagick might be problematic. Click here for more details.

Files changed (380) hide show
  1. checksums.yaml +7 -0
  2. data/.codeclimate.yml +63 -0
  3. data/.editorconfig +17 -0
  4. data/.github/ISSUE_TEMPLATE.md +17 -0
  5. data/.github/workflows/ci.yml +107 -0
  6. data/.gitignore +25 -0
  7. data/.rspec +2 -0
  8. data/.rubocop.yml +37 -0
  9. data/.rubocop_todo.yml +449 -0
  10. data/.yardopts +5 -0
  11. data/CHANGELOG.md +1277 -0
  12. data/CODE_OF_CONDUCT.md +128 -0
  13. data/CONTRIBUTING.md +81 -0
  14. data/Gemfile +4 -0
  15. data/LICENSE +20 -0
  16. data/README.md +324 -0
  17. data/Rakefile +190 -0
  18. data/before_install_linux.sh +69 -0
  19. data/before_install_osx.sh +57 -0
  20. data/deprecated/RMagick.rb +6 -0
  21. data/ext/RMagick/extconf.rb +334 -333
  22. data/ext/RMagick/rmagick.c +129 -127
  23. data/ext/RMagick/rmagick.h +221 -320
  24. data/ext/RMagick/rmdraw.c +458 -767
  25. data/ext/RMagick/rmenum.c +305 -752
  26. data/ext/RMagick/rmfill.c +231 -199
  27. data/ext/RMagick/rmilist.c +437 -478
  28. data/ext/RMagick/rmimage.c +6130 -5342
  29. data/ext/RMagick/rminfo.c +695 -833
  30. data/ext/RMagick/rmkinfo.c +198 -0
  31. data/ext/RMagick/rmmain.c +752 -506
  32. data/ext/RMagick/rmmontage.c +94 -152
  33. data/ext/RMagick/rmpixel.c +619 -425
  34. data/ext/RMagick/rmstruct.c +206 -309
  35. data/ext/RMagick/rmutil.c +514 -344
  36. data/lib/rmagick/version.rb +5 -0
  37. data/lib/rmagick.rb +1 -0
  38. data/lib/rmagick_internal.rb +1922 -0
  39. data/lib/rvg/clippath.rb +35 -39
  40. data/lib/rvg/container.rb +123 -124
  41. data/lib/rvg/deep_equal.rb +45 -49
  42. data/lib/rvg/describable.rb +41 -47
  43. data/lib/rvg/embellishable.rb +380 -411
  44. data/lib/rvg/misc.rb +691 -711
  45. data/lib/rvg/paint.rb +43 -47
  46. data/lib/rvg/pathdata.rb +119 -125
  47. data/lib/rvg/rvg.rb +214 -213
  48. data/lib/rvg/stretchable.rb +153 -162
  49. data/lib/rvg/stylable.rb +111 -117
  50. data/lib/rvg/text.rb +169 -180
  51. data/lib/rvg/transformable.rb +121 -127
  52. data/lib/rvg/units.rb +58 -61
  53. data/rmagick.gemspec +36 -16
  54. metadata +188 -365
  55. data/ChangeLog +0 -773
  56. data/Doxyfile +0 -1514
  57. data/README-Mac-OSX.txt +0 -1
  58. data/README.html +0 -10
  59. data/build_tarball.rake +0 -215
  60. data/doc/comtasks.html +0 -287
  61. data/doc/constants.html +0 -1581
  62. data/doc/css/doc.css +0 -299
  63. data/doc/css/popup.css +0 -34
  64. data/doc/css/ref.css +0 -67
  65. data/doc/draw.html +0 -3269
  66. data/doc/ex/InitialCoords.rb +0 -23
  67. data/doc/ex/NewCoordSys.rb +0 -32
  68. data/doc/ex/OrigCoordSys.rb +0 -18
  69. data/doc/ex/PreserveAspectRatio.rb +0 -205
  70. data/doc/ex/RotateScale.rb +0 -37
  71. data/doc/ex/Skew.rb +0 -38
  72. data/doc/ex/Use01.rb +0 -16
  73. data/doc/ex/Use02.rb +0 -21
  74. data/doc/ex/Use03.rb +0 -16
  75. data/doc/ex/ViewBox.rb +0 -33
  76. data/doc/ex/adaptive_threshold.rb +0 -10
  77. data/doc/ex/add_noise.rb +0 -17
  78. data/doc/ex/affine.rb +0 -48
  79. data/doc/ex/affine_transform.rb +0 -20
  80. data/doc/ex/arc.rb +0 -49
  81. data/doc/ex/arcpath.rb +0 -33
  82. data/doc/ex/arcs01.rb +0 -28
  83. data/doc/ex/arcs02.rb +0 -61
  84. data/doc/ex/average.rb +0 -15
  85. data/doc/ex/axes.rb +0 -64
  86. data/doc/ex/baseline_shift01.rb +0 -18
  87. data/doc/ex/bilevel_channel.rb +0 -9
  88. data/doc/ex/blur_image.rb +0 -12
  89. data/doc/ex/border.rb +0 -10
  90. data/doc/ex/bounding_box.rb +0 -44
  91. data/doc/ex/cbezier1.rb +0 -42
  92. data/doc/ex/cbezier2.rb +0 -42
  93. data/doc/ex/cbezier3.rb +0 -42
  94. data/doc/ex/cbezier4.rb +0 -43
  95. data/doc/ex/cbezier5.rb +0 -43
  96. data/doc/ex/cbezier6.rb +0 -53
  97. data/doc/ex/channel.rb +0 -26
  98. data/doc/ex/charcoal.rb +0 -12
  99. data/doc/ex/chop.rb +0 -29
  100. data/doc/ex/circle.rb +0 -33
  101. data/doc/ex/circle01.rb +0 -17
  102. data/doc/ex/clip_path.rb +0 -60
  103. data/doc/ex/coalesce.rb +0 -60
  104. data/doc/ex/color_fill_to_border.rb +0 -29
  105. data/doc/ex/color_floodfill.rb +0 -28
  106. data/doc/ex/color_histogram.rb +0 -48
  107. data/doc/ex/color_reset.rb +0 -11
  108. data/doc/ex/colorize.rb +0 -16
  109. data/doc/ex/colors.rb +0 -64
  110. data/doc/ex/compose_mask.rb +0 -23
  111. data/doc/ex/composite.rb +0 -135
  112. data/doc/ex/composite_layers.rb +0 -53
  113. data/doc/ex/composite_tiled.rb +0 -23
  114. data/doc/ex/contrast.rb +0 -36
  115. data/doc/ex/crop.rb +0 -31
  116. data/doc/ex/crop_with_gravity.rb +0 -46
  117. data/doc/ex/cubic01.rb +0 -45
  118. data/doc/ex/cubic02.rb +0 -94
  119. data/doc/ex/cycle_colormap.rb +0 -21
  120. data/doc/ex/dissolve.rb +0 -13
  121. data/doc/ex/drawcomp.rb +0 -42
  122. data/doc/ex/drop_shadow.rb +0 -60
  123. data/doc/ex/edge.rb +0 -11
  124. data/doc/ex/ellipse.rb +0 -45
  125. data/doc/ex/ellipse01.rb +0 -22
  126. data/doc/ex/emboss.rb +0 -11
  127. data/doc/ex/enhance.rb +0 -28
  128. data/doc/ex/equalize.rb +0 -11
  129. data/doc/ex/evenodd.rb +0 -43
  130. data/doc/ex/fill_pattern.rb +0 -26
  131. data/doc/ex/flatten_images.rb +0 -36
  132. data/doc/ex/flip.rb +0 -11
  133. data/doc/ex/flop.rb +0 -11
  134. data/doc/ex/font_styles.rb +0 -34
  135. data/doc/ex/fonts.rb +0 -20
  136. data/doc/ex/frame.rb +0 -12
  137. data/doc/ex/gaussian_blur.rb +0 -11
  138. data/doc/ex/get_multiline_type_metrics.rb +0 -42
  139. data/doc/ex/get_pixels.rb +0 -48
  140. data/doc/ex/get_type_metrics.rb +0 -146
  141. data/doc/ex/gradientfill.rb +0 -27
  142. data/doc/ex/grav.rb +0 -46
  143. data/doc/ex/gravity.rb +0 -79
  144. data/doc/ex/group.rb +0 -26
  145. data/doc/ex/hatchfill.rb +0 -27
  146. data/doc/ex/image.rb +0 -46
  147. data/doc/ex/images/Apple.miff +0 -0
  148. data/doc/ex/images/Ballerina.jpg +0 -0
  149. data/doc/ex/images/Ballerina3.jpg +0 -0
  150. data/doc/ex/images/Button_0.gif +0 -0
  151. data/doc/ex/images/Button_1.gif +0 -0
  152. data/doc/ex/images/Button_2.gif +0 -0
  153. data/doc/ex/images/Button_3.gif +0 -0
  154. data/doc/ex/images/Button_4.gif +0 -0
  155. data/doc/ex/images/Button_5.gif +0 -0
  156. data/doc/ex/images/Button_6.gif +0 -0
  157. data/doc/ex/images/Button_7.gif +0 -0
  158. data/doc/ex/images/Button_8.gif +0 -0
  159. data/doc/ex/images/Button_9.gif +0 -0
  160. data/doc/ex/images/Button_A.gif +0 -0
  161. data/doc/ex/images/Button_B.gif +0 -0
  162. data/doc/ex/images/Button_C.gif +0 -0
  163. data/doc/ex/images/Button_D.gif +0 -0
  164. data/doc/ex/images/Button_E.gif +0 -0
  165. data/doc/ex/images/Button_F.gif +0 -0
  166. data/doc/ex/images/Button_G.gif +0 -0
  167. data/doc/ex/images/Button_H.gif +0 -0
  168. data/doc/ex/images/Button_I.gif +0 -0
  169. data/doc/ex/images/Button_J.gif +0 -0
  170. data/doc/ex/images/Button_K.gif +0 -0
  171. data/doc/ex/images/Button_L.gif +0 -0
  172. data/doc/ex/images/Button_M.gif +0 -0
  173. data/doc/ex/images/Button_N.gif +0 -0
  174. data/doc/ex/images/Button_O.gif +0 -0
  175. data/doc/ex/images/Button_P.gif +0 -0
  176. data/doc/ex/images/Button_Q.gif +0 -0
  177. data/doc/ex/images/Button_R.gif +0 -0
  178. data/doc/ex/images/Button_S.gif +0 -0
  179. data/doc/ex/images/Button_T.gif +0 -0
  180. data/doc/ex/images/Button_U.gif +0 -0
  181. data/doc/ex/images/Button_V.gif +0 -0
  182. data/doc/ex/images/Button_W.gif +0 -0
  183. data/doc/ex/images/Button_X.gif +0 -0
  184. data/doc/ex/images/Button_Y.gif +0 -0
  185. data/doc/ex/images/Button_Z.gif +0 -0
  186. data/doc/ex/images/Cheetah.jpg +0 -0
  187. data/doc/ex/images/Coffee.wmf +0 -0
  188. data/doc/ex/images/Flower_Hat.jpg +0 -0
  189. data/doc/ex/images/Gold_Statue.jpg +0 -0
  190. data/doc/ex/images/Hot_Air_Balloons.jpg +0 -0
  191. data/doc/ex/images/Hot_Air_Balloons_H.jpg +0 -0
  192. data/doc/ex/images/Leaf.miff +0 -0
  193. data/doc/ex/images/No.wmf +0 -0
  194. data/doc/ex/images/Polynesia.jpg +0 -0
  195. data/doc/ex/images/Red_Rocks.jpg +0 -0
  196. data/doc/ex/images/Rocks_On_Beach.miff +0 -0
  197. data/doc/ex/images/Shorts.jpg +0 -0
  198. data/doc/ex/images/Snake.wmf +0 -0
  199. data/doc/ex/images/Violin.jpg +0 -0
  200. data/doc/ex/images/Yellow_Rose.miff +0 -0
  201. data/doc/ex/images/big-duck.gif +0 -0
  202. data/doc/ex/images/duck.gif +0 -0
  203. data/doc/ex/images/duck0.gif +0 -0
  204. data/doc/ex/images/duck1.gif +0 -0
  205. data/doc/ex/images/duck10.gif +0 -0
  206. data/doc/ex/images/duck11.gif +0 -0
  207. data/doc/ex/images/duck12.gif +0 -0
  208. data/doc/ex/images/duck13.gif +0 -0
  209. data/doc/ex/images/duck14.gif +0 -0
  210. data/doc/ex/images/duck15.gif +0 -0
  211. data/doc/ex/images/duck2.gif +0 -0
  212. data/doc/ex/images/duck3.gif +0 -0
  213. data/doc/ex/images/duck4.gif +0 -0
  214. data/doc/ex/images/duck5.gif +0 -0
  215. data/doc/ex/images/duck6.gif +0 -0
  216. data/doc/ex/images/duck7.gif +0 -0
  217. data/doc/ex/images/duck8.gif +0 -0
  218. data/doc/ex/images/duck9.gif +0 -0
  219. data/doc/ex/images/graydient230x6.gif +0 -0
  220. data/doc/ex/images/logo400x83.gif +0 -0
  221. data/doc/ex/images/model.miff +0 -0
  222. data/doc/ex/images/notimplemented.gif +0 -0
  223. data/doc/ex/images/smile.miff +0 -0
  224. data/doc/ex/images/spin.gif +0 -0
  225. data/doc/ex/implode.rb +0 -34
  226. data/doc/ex/level.rb +0 -11
  227. data/doc/ex/level_colors.rb +0 -11
  228. data/doc/ex/line.rb +0 -42
  229. data/doc/ex/line01.rb +0 -23
  230. data/doc/ex/mask.rb +0 -36
  231. data/doc/ex/matte_fill_to_border.rb +0 -40
  232. data/doc/ex/matte_floodfill.rb +0 -33
  233. data/doc/ex/matte_replace.rb +0 -40
  234. data/doc/ex/median_filter.rb +0 -28
  235. data/doc/ex/modulate.rb +0 -11
  236. data/doc/ex/mono.rb +0 -23
  237. data/doc/ex/morph.rb +0 -26
  238. data/doc/ex/mosaic.rb +0 -35
  239. data/doc/ex/motion_blur.rb +0 -11
  240. data/doc/ex/negate.rb +0 -11
  241. data/doc/ex/negate_channel.rb +0 -9
  242. data/doc/ex/nested_rvg.rb +0 -21
  243. data/doc/ex/nonzero.rb +0 -43
  244. data/doc/ex/normalize.rb +0 -11
  245. data/doc/ex/oil_paint.rb +0 -11
  246. data/doc/ex/opacity.rb +0 -37
  247. data/doc/ex/ordered_dither.rb +0 -11
  248. data/doc/ex/path.rb +0 -64
  249. data/doc/ex/pattern1.rb +0 -25
  250. data/doc/ex/pattern2.rb +0 -26
  251. data/doc/ex/polaroid.rb +0 -28
  252. data/doc/ex/polygon.rb +0 -24
  253. data/doc/ex/polygon01.rb +0 -23
  254. data/doc/ex/polyline.rb +0 -23
  255. data/doc/ex/polyline01.rb +0 -23
  256. data/doc/ex/posterize.rb +0 -8
  257. data/doc/ex/preview.rb +0 -9
  258. data/doc/ex/qbezierpath.rb +0 -52
  259. data/doc/ex/quad01.rb +0 -36
  260. data/doc/ex/quantize-m.rb +0 -25
  261. data/doc/ex/radial_blur.rb +0 -9
  262. data/doc/ex/raise.rb +0 -8
  263. data/doc/ex/random_threshold_channel.rb +0 -13
  264. data/doc/ex/rect01.rb +0 -15
  265. data/doc/ex/rect02.rb +0 -22
  266. data/doc/ex/rectangle.rb +0 -35
  267. data/doc/ex/reduce_noise.rb +0 -28
  268. data/doc/ex/remap.rb +0 -12
  269. data/doc/ex/remap_images.rb +0 -21
  270. data/doc/ex/resize_to_fill.rb +0 -10
  271. data/doc/ex/resize_to_fit.rb +0 -10
  272. data/doc/ex/roll.rb +0 -9
  273. data/doc/ex/rotate.rb +0 -45
  274. data/doc/ex/rotate_f.rb +0 -14
  275. data/doc/ex/roundrect.rb +0 -34
  276. data/doc/ex/rubyname.rb +0 -30
  277. data/doc/ex/rvg_clippath.rb +0 -14
  278. data/doc/ex/rvg_linecap.rb +0 -43
  279. data/doc/ex/rvg_linejoin.rb +0 -41
  280. data/doc/ex/rvg_opacity.rb +0 -19
  281. data/doc/ex/rvg_pattern.rb +0 -26
  282. data/doc/ex/rvg_stroke_dasharray.rb +0 -12
  283. data/doc/ex/segment.rb +0 -11
  284. data/doc/ex/sepiatone.rb +0 -8
  285. data/doc/ex/shade.rb +0 -11
  286. data/doc/ex/shadow.rb +0 -31
  287. data/doc/ex/shave.rb +0 -15
  288. data/doc/ex/shear.rb +0 -10
  289. data/doc/ex/sketch.rb +0 -18
  290. data/doc/ex/skewx.rb +0 -52
  291. data/doc/ex/skewy.rb +0 -47
  292. data/doc/ex/smile.rb +0 -125
  293. data/doc/ex/solarize.rb +0 -11
  294. data/doc/ex/sparse_color.rb +0 -55
  295. data/doc/ex/splice.rb +0 -9
  296. data/doc/ex/spread.rb +0 -11
  297. data/doc/ex/stegano.rb +0 -55
  298. data/doc/ex/stroke_dasharray.rb +0 -43
  299. data/doc/ex/stroke_fill.rb +0 -11
  300. data/doc/ex/stroke_linecap.rb +0 -44
  301. data/doc/ex/stroke_linejoin.rb +0 -48
  302. data/doc/ex/stroke_width.rb +0 -49
  303. data/doc/ex/swirl.rb +0 -17
  304. data/doc/ex/text.rb +0 -37
  305. data/doc/ex/text01.rb +0 -17
  306. data/doc/ex/text_align.rb +0 -36
  307. data/doc/ex/text_antialias.rb +0 -38
  308. data/doc/ex/text_styles.rb +0 -21
  309. data/doc/ex/text_undercolor.rb +0 -28
  310. data/doc/ex/texture_fill_to_border.rb +0 -34
  311. data/doc/ex/texture_floodfill.rb +0 -32
  312. data/doc/ex/texturefill.rb +0 -25
  313. data/doc/ex/threshold.rb +0 -13
  314. data/doc/ex/to_blob.rb +0 -14
  315. data/doc/ex/translate.rb +0 -39
  316. data/doc/ex/transparent.rb +0 -38
  317. data/doc/ex/transpose.rb +0 -9
  318. data/doc/ex/transverse.rb +0 -9
  319. data/doc/ex/tref01.rb +0 -25
  320. data/doc/ex/triangle01.rb +0 -16
  321. data/doc/ex/trim.rb +0 -24
  322. data/doc/ex/tspan01.rb +0 -18
  323. data/doc/ex/tspan02.rb +0 -19
  324. data/doc/ex/tspan03.rb +0 -21
  325. data/doc/ex/unsharp_mask.rb +0 -28
  326. data/doc/ex/viewex.rb +0 -35
  327. data/doc/ex/vignette.rb +0 -12
  328. data/doc/ex/watermark.rb +0 -28
  329. data/doc/ex/wave.rb +0 -9
  330. data/doc/ex/wet_floor.rb +0 -59
  331. data/doc/ex/writing_mode01.rb +0 -27
  332. data/doc/ex/writing_mode02.rb +0 -26
  333. data/doc/ilist.html +0 -2056
  334. data/doc/image1.html +0 -4680
  335. data/doc/image2.html +0 -3665
  336. data/doc/image3.html +0 -4522
  337. data/doc/imageattrs.html +0 -1638
  338. data/doc/imusage.html +0 -514
  339. data/doc/index.html +0 -416
  340. data/doc/info.html +0 -1499
  341. data/doc/magick.html +0 -565
  342. data/doc/optequiv.html +0 -2435
  343. data/doc/rvg.html +0 -975
  344. data/doc/rvgclip.html +0 -248
  345. data/doc/rvggroup.html +0 -305
  346. data/doc/rvgimage.html +0 -289
  347. data/doc/rvgpattern.html +0 -475
  348. data/doc/rvgshape.html +0 -406
  349. data/doc/rvgstyle.html +0 -270
  350. data/doc/rvgtext.html +0 -465
  351. data/doc/rvgtspan.html +0 -238
  352. data/doc/rvgtut.html +0 -530
  353. data/doc/rvguse.html +0 -145
  354. data/doc/rvgxform.html +0 -294
  355. data/doc/scripts/doc.js +0 -22
  356. data/doc/scripts/stripeTables.js +0 -23
  357. data/doc/struct.html +0 -1339
  358. data/doc/usage.html +0 -1621
  359. data/examples/constitute.rb +0 -7
  360. data/examples/crop_with_gravity.rb +0 -46
  361. data/examples/demo.rb +0 -324
  362. data/examples/describe.rb +0 -44
  363. data/examples/find_similar_region.rb +0 -34
  364. data/examples/histogram.rb +0 -325
  365. data/examples/identify.rb +0 -187
  366. data/examples/image_opacity.rb +0 -29
  367. data/examples/import_export.rb +0 -31
  368. data/examples/pattern_fill.rb +0 -38
  369. data/examples/rotating_text.rb +0 -45
  370. data/examples/spinner.rb +0 -50
  371. data/examples/thumbnail.rb +0 -65
  372. data/examples/vignette.rb +0 -79
  373. data/ext/RMagick/MANIFEST +0 -358
  374. data/lib/RMagick.rb +0 -1962
  375. data/metaconfig +0 -7
  376. data/post-clean.rb +0 -12
  377. data/post-install.rb +0 -50
  378. data/post-setup.rb +0 -254
  379. data/setup.rb +0 -1585
  380. data/uninstall.rb +0 -76
@@ -1,23 +0,0 @@
1
- require 'rvg/rvg'
2
-
3
- rvg = Magick::RVG.new(300, 100) do |canvas|
4
- canvas.desc = "Example InitialCoords - SVG's initial coordinate system"
5
- canvas.background_fill = 'white'
6
- canvas.g.styles(:fill=>'none', :stroke=>'black', :stroke_width=>3) do |grp|
7
- grp.line(0, 1.5, 300, 1.5)
8
- grp.line(1.5, 0, 1.5, 100)
9
- end
10
- canvas.g.styles(:fill=>'red', :stroke=>'none') do |grp|
11
- grp.rect(3, 3)
12
- grp.rect(3, 3, 297, 0)
13
- grp.rect(3, 3, 0, 97)
14
- end
15
- canvas.g.styles(:font_size=>14, :font_family=>'Verdana', :font_weight=>'normal', :font_style=>'normal') do |grp|
16
- grp.text(10, 20, '(0,0)')
17
- grp.text(240, 20, '(300,0)')
18
- grp.text(10, 90, '(0,100)')
19
- end
20
- end
21
-
22
- rvg.draw.write('InitialCoords.gif')
23
-
@@ -1,32 +0,0 @@
1
- require 'rvg/rvg'
2
-
3
- rvg = Magick::RVG.new(400, 150) do |canvas|
4
- canvas.background_fill = 'white'
5
- canvas.desc = 'Example NewCoordSys - New user coordinate system'
6
- canvas.g.styles(:fill=>'none', :stroke=>'black', :stroke_width=>3) do |grp|
7
- # Draw the axes of the original coordinate system
8
- grp.line(0, 1.5, 400, 1.5)
9
- grp.line(1.5, 0, 1.5, 150)
10
- end
11
-
12
- canvas.g do |grp|
13
- grp.text(30, 30, 'ABC (orig coord system)').styles(:font_size=>20, :font_family=>'Verdana', :font_weight=>'normal', :font_style=>'normal')
14
- end
15
-
16
- # Establish a new coordinate system, which is
17
- # shifted (i.e., translated) from the initial coordinate
18
- # system by 50 user units along each axis.
19
- canvas.g.translate(50, 50) do |grp|
20
- grp.g.styles(:fill=>'none', :stroke=>'red', :stroke_width=>3) do |grp2|
21
- # Draw lines of length 50 user units along
22
- # the axes of the new coordinate system
23
- grp2.line(0, 0, 50, 0)
24
- grp2.line(0, 0, 0, 50)
25
- end
26
- grp.text(30, 30, 'ABC (translated coord system)').styles(:font_size=>20, :font_family=>'Verdana', :font_weight=>'normal', :font_style=>'normal')
27
- end
28
-
29
- end
30
-
31
- rvg.draw.write('NewCoordSys.gif')
32
-
@@ -1,18 +0,0 @@
1
- require 'rvg/rvg'
2
-
3
- rvg = Magick::RVG.new(400, 150) do |canvas|
4
- canvas.desc = "Example OrigCoordSys - Simple transformations: original picture"
5
- canvas.background_fill = 'white'
6
-
7
- canvas.g.styles(:fill=>'none', :stroke=>'black', :stroke_width=>3) do |grp|
8
- # Draw the axes of the original coordinate system
9
- grp.line(0, 1.5, 400, 1.5)
10
- grp.line(1.5, 0, 1.5, 150)
11
- end
12
-
13
- canvas.text(30, 30, 'ABC (orig coord system)').styles(:font_size=>20, :font_family=>'Verdana', :font_weight=>'normal', :font_style=>'normal')
14
-
15
- end
16
-
17
- rvg.draw.write('OrigCoordSys.gif')
18
-
@@ -1,205 +0,0 @@
1
- require 'rvg/rvg'
2
-
3
- rvg = Magick::RVG.new(450, 300) do |canvas|
4
- canvas.desc = 'Example Preserve Aspect Ratio'
5
- canvas.background_fill = 'white'
6
-
7
- canvas.rect(448, 298, 1, 1).styles(:fill=>'none', :stroke=>'blue')
8
-
9
- # Define the smiley-face
10
- smile = Magick::RVG::Group.new do |grp|
11
- grp.translate(0, 5)
12
- grp.circle(10, 15, 15).styles(:fill=>'yellow', :stroke=>'none')
13
- grp.circle(1.5, 12, 12).styles(:fill=>'black', :stroke=>'none')
14
- grp.circle(1.5, 17, 12).styles(:fill=>'black', :stroke=>'none')
15
- grp.path("M10 19 A 8 8 0 0 0 20 19").styles(:stroke=>'black', :stroke_width=>2)
16
- end
17
-
18
- viewport1 = Magick::RVG::Group.new do |grp|
19
- grp.rect(49, 29, 0.5, 0.5).styles(:fill => 'none', :stroke => 'blue')
20
- end
21
-
22
- viewport2 = Magick::RVG::Group.new do |grp|
23
- grp.rect(29, 39, 0.5, 0.5).styles(:fill=>'black', :stroke=>'red')
24
- end
25
-
26
- # SVG to fit
27
- grp = canvas.g.styles(:font_size=>9) do |grp|
28
- grp.text(10, 30, "SVG to fit")
29
- grp.g.translate(20, 40) do |grp2|
30
- grp2.use(viewport2)
31
- grp2.use(smile)
32
- end
33
-
34
- # Viewport 1
35
- grp.g.translate(10, 120) do |grp2|
36
- grp2.use(viewport1)
37
- end
38
- grp.text(10, 110, 'Viewport 1')
39
-
40
- # Viewport 2
41
- grp.g.translate(20, 190) do |grp2|
42
- grp2.rect(29, 50, 0.5, 0.5).styles(:fill => 'none', :stroke => 'blue')
43
- end
44
- grp.text(10, 180, 'Viewport 2')
45
-
46
- # meet-group-1
47
- grp.g.translate(100, 60) do |grp2|
48
- grp2.text(0, -30, "--------------- meet ---------------")
49
- grp2.g do |grp3|
50
- grp3.text(0, -10, "xMin*")
51
- grp3.use(viewport1)
52
-
53
- # xMin
54
- grp3.rvg(50, 30).viewbox(0,0,30,40).preserve_aspect_ratio('xMinYMin', 'meet') do |canvas2|
55
- canvas2.rect(29, 39, 0.5, 0.5).styles(:fill => 'black', :stroke => 'red')
56
- canvas2.use(smile)
57
- end
58
- end
59
-
60
- # xMid
61
- grp2.g.translate(70, 0) do |grp3|
62
- grp3.text(0, -10, "xMid*")
63
- grp3.use(viewport1)
64
- grp3.rvg(50, 30).viewbox(0, 0, 30, 40).preserve_aspect_ratio('xMidYMid', 'meet') do |canvas2|
65
- canvas2.rect(29, 39, 0.5, 0.5).styles(:fill => 'black', :stroke => 'red')
66
- canvas2.use(smile)
67
- end
68
- end
69
-
70
- # xMax
71
- grp2.g.translate(0, 70) do |grp3|
72
- grp3.text(0, -10, "xMax*")
73
- grp3.use(viewport1)
74
- grp3.rvg(50, 30).viewbox(0,0,30,40).preserve_aspect_ratio('xMaxYMax', 'meet') do |canvas2|
75
- canvas2.rect(29, 39, 0.5, 0.5).styles(:fill => 'black', :stroke => 'red')
76
- canvas2.use(smile)
77
- end
78
- end
79
- end
80
-
81
- # meet-group-2
82
- grp.g.translate(250, 60) do |grp2|
83
- grp2.text(0, -30, "--------------- meet ---------------")
84
-
85
- # xMin
86
- grp2.g do |grp3|
87
- grp3.text(0, -10, "*YMin")
88
- grp3.rect(29, 59, 0.5, 0.5).styles(:fill => 'none', :stroke => 'blue')
89
- grp3.rvg(30, 60).viewbox(0,0,30,40).preserve_aspect_ratio('xMinYMin', 'meet') do |canvas2|
90
- canvas2.use(viewport2)
91
- canvas2.use(smile)
92
- end
93
- end
94
-
95
- # xMid
96
- grp2.g.translate(50, 0) do |grp3|
97
- grp3.text(0, -10, "*YMid")
98
- grp3.rect(29, 59, 0.5, 0.5).styles(:fill => 'none', :stroke => 'blue')
99
- grp3.rvg(30, 60).viewbox(0, 0, 30, 40).preserve_aspect_ratio('xMidYMid', 'meet') do |canvas2|
100
- canvas2.use(viewport2)
101
- canvas2.use(smile)
102
- end
103
- end
104
-
105
- # xMax
106
- grp2.g.translate(100, 0) do |grp3|
107
- grp3.text(0, -10, "*YMax")
108
- grp3.rect(29, 59, 0.5, 0.5).styles(:fill => 'none', :stroke => 'blue')
109
- grp3.rvg(30, 60).viewbox(0,0,30,40).preserve_aspect_ratio('xMaxYMax', 'meet') do |canvas2|
110
- canvas2.rect(29, 39, 0.5, 0.5).styles(:fill => 'black', :stroke => 'red')
111
- canvas2.use(smile)
112
- end
113
- end
114
- end
115
-
116
- # slice-group-1
117
- grp.g.translate(100, 220) do |grp2|
118
- grp2.text(0, -30, "--------------- slice ---------------")
119
-
120
- # xMin
121
- grp2.g do |grp3|
122
- grp3.text(0, -10, "xMin*")
123
- grp3.rect(29, 59, 0.5, 0.5).styles(:fill => 'none', :stroke => 'blue')
124
- grp3.rvg(30, 60) do |canvas2|
125
- canvas2.preserve_aspect_ratio('xMinYMin', 'slice')
126
- canvas2.viewbox(0,0,30,40)
127
- canvas2.use(viewport2)
128
- canvas2.use(smile)
129
- end
130
- end
131
-
132
- # xMid
133
- grp2.g do |grp3|
134
- grp3.text(0, -10, "xMid*")
135
- grp3.translate(50, 0)
136
- grp3.rect(29, 59, 0.5, 0.5).styles(:fill => 'none', :stroke => 'blue')
137
- grp3.rvg(30, 60) do |canvas2|
138
- canvas2.preserve_aspect_ratio('xMidYMid', 'slice')
139
- canvas2.viewbox(0,0,30,40)
140
- canvas2.rect(29, 39, 0.5, 0.5).styles(:fill => 'black', :stroke => 'red')
141
- canvas2.use(smile)
142
- end
143
- end
144
-
145
- # xMax
146
- grp2.g do |grp3|
147
- grp3.text(0, -10, "xMax*")
148
- grp3.translate(100, 0)
149
- grp3.rect(29, 59, 0.5, 0.5).styles(:fill => 'none', :stroke => 'blue')
150
- grp3.rvg(30, 60) do |canvas2|
151
- canvas2.preserve_aspect_ratio('xMaxYMax', 'slice')
152
- canvas2.viewbox(0,0,30,40)
153
- canvas2.rect(29, 39, 0.5, 0.5).styles(:fill => 'black', :stroke => 'red')
154
- canvas2.use(smile)
155
- end
156
- end
157
- end
158
-
159
- # slice-group-2
160
- grp.g.translate(250, 200) do |grp2|
161
- grp2.text(0, -30, "--------------- slice ---------------")
162
-
163
- # YMin
164
- grp2.g do |grp3|
165
- grp3.text(0, -10, "*YMin")
166
- grp3.use(viewport1)
167
- grp3.rvg(50, 30) do |canvas2|
168
- canvas2.preserve_aspect_ratio('xMinYMin', 'slice')
169
- canvas2.viewbox(0,0,30,40)
170
- canvas2.rect(29, 39, 0.5, 0.5).styles(:fill => 'black', :stroke => 'red')
171
- canvas2.use(smile)
172
- end
173
- end
174
-
175
- # YMid
176
- grp2.g do |grp3|
177
- grp3.text(0, -10, "*YMid")
178
- grp3.translate(70, 0)
179
- grp3.use(viewport1)
180
- grp3.rvg(50, 30) do |canvas2|
181
- canvas2.preserve_aspect_ratio('xMidYMid', 'slice')
182
- canvas2.viewbox(0,0,30,40)
183
- canvas2.rect(29, 39, 0.5, 0.5).styles(:fill => 'black', :stroke => 'red')
184
- canvas2.use(smile)
185
- end
186
- end
187
-
188
- # YMax
189
- grp2.g do |grp3|
190
- grp3.text(0, -10, "*YMax")
191
- grp3.translate(140, 0)
192
- grp3.use(viewport1)
193
- grp3.rvg(50, 30) do |canvas2|
194
- canvas2.preserve_aspect_ratio('xMaxYMax', 'slice')
195
- canvas2.viewbox(0,0,30,40)
196
- canvas2.rect(29, 39, 0.5, 0.5).styles(:fill => 'black', :stroke => 'red')
197
- canvas2.use(smile)
198
- end
199
- end
200
- end
201
- end
202
- end
203
-
204
- rvg.draw.write('PreserveAspectRatio.gif')
205
-
@@ -1,37 +0,0 @@
1
- require 'rvg/rvg'
2
-
3
- rvg = Magick::RVG.new(400, 120) do |canvas|
4
- canvas.desc = 'Example RotateScale - Rotate and scale transforms'
5
- canvas.background_fill = 'white'
6
- canvas.g.styles(:fill=>'none', :stroke=>'black', :stroke_width=>3) do |grp|
7
- # Draw the axes of the original coordinate system
8
- grp.line(0, 1.5, 400, 1.5)
9
- grp.line(1.5, 0, 1.5, 120)
10
- end
11
- # Establish a new coordinate system whose origin is at (50,30)
12
- # in the original coord. system and which is rotated by 30 degrees.
13
- canvas.g.translate(50,30) do |grp|
14
- grp.g.rotate(30) do |grp2|
15
- grp2.g.styles(:fill=>'none',:stroke=>'red',:stroke_width=>3) do |grp3|
16
- grp3.line(0, 0, 50, 0)
17
- grp3.line(0, 0, 0, 50)
18
- end
19
- grp2.text(0, 0, "ABC (rotate)").styles(:font_size=>20, :fill=>'blue', :font_family=>'Verdana', :font_weight=>'normal', :font_style=>'normal')
20
- end
21
- end
22
-
23
- # Establish a new coordinate system whose origin is at (200,40)
24
- # in the original coord. systm and which is scaled by 1.5
25
- canvas.g.translate(200,40) do |grp|
26
- grp.g.scale(1.5) do |grp2|
27
- grp2.g.styles(:fill=>'none',:stroke=>'red',:stroke_width=>3) do |grp3|
28
- grp3.line(0, 0, 50, 0)
29
- grp3.line(0, 0, 0, 50)
30
- end
31
- grp2.text(0, 0, "ABC (scale)").styles(:font_size=>20, :fill=>'blue', :font_family=>'Verdana', :font_weight=>'normal', :font_style=>'normal')
32
- end
33
- end
34
- end
35
-
36
- rvg.draw.write('RotateScale.gif')
37
-
data/doc/ex/Skew.rb DELETED
@@ -1,38 +0,0 @@
1
- require 'rvg/rvg'
2
-
3
- rvg = Magick::RVG.new(400, 120) do |canvas|
4
- canvas.desc = 'Example Skew - Show effects of skewX and skewY'
5
- canvas.background_fill = 'white'
6
-
7
- canvas.g.styles(:fill=>'none',:stroke=>'black',:stroke_width=>3) do |grp|
8
- # Draw the axes of the original coordinate system
9
- grp.line(0, 1.5, 400, 1.5)
10
- grp.line(1.5, 0, 1.5, 120)
11
- end
12
-
13
- # Establisha new coordinate system whose origin is at (30,30)
14
- # in the initial coord. system and which is skewed in X by 30 degrees.
15
- canvas.g.translate(30,30) do |grp|
16
- grp.skewX(30) do |grp2|
17
- grp2.g.styles(:fill=>'none', :stroke=>'red', :stroke_width=>3) do |grp3|
18
- grp3.line(0, 0, 50, 0)
19
- grp3.line(0, 0, 0, 50)
20
- end
21
- grp.text(0, 0, 'ABC (skewX)').styles(:font_size=>20, :fill=>'blue', :font_family=>'Verdana', :font_weight=>'normal', :font_style=>'normal')
22
- end
23
- end
24
-
25
- # Establish a new coordinate system whose origin is at (200,30)
26
- # in the initial coord. system and which is skewed in Y by 30 degrees.
27
- canvas.g.translate(200,30) do |grp|
28
- grp.skewY(30) do |grp2|
29
- grp2.g.styles(:fill=>'none', :stroke=>'red', :stroke_width=>3) do |grp3|
30
- grp3.line(0, 0, 50, 0)
31
- grp3.line(0, 0, 0, 50)
32
- end
33
- grp.text(0, 0, 'ABC (skewY)').styles(:font_size=>20, :fill=>'blue', :font_family=>'Verdana', :font_weight=>'normal', :font_style=>'normal')
34
- end
35
- end
36
- end
37
-
38
- rvg.draw.write('Skew.gif')
data/doc/ex/Use01.rb DELETED
@@ -1,16 +0,0 @@
1
- require 'rvg/rvg'
2
-
3
- Magick::RVG.dpi = 90
4
-
5
- rvg = Magick::RVG.new(10.cm, 3.cm).viewbox(0, 0, 100, 30) do |canvas|
6
- canvas.background_fill = 'white'
7
- canvas.desc = "Example Use01 - Simple case of 'use' on a 'rect'"
8
- r = Magick::RVG::Group.new do |grp|
9
- grp.rect(60, 10)
10
- end
11
- canvas.rect(99.6, 29.6, 0.1, 0.1).styles(:fill=>'none', :stroke=>'blue', :stroke_width=>0.2)
12
- canvas.use(r, 20, 10)
13
- end
14
-
15
- rvg.draw.write('Use01.gif')
16
-
data/doc/ex/Use02.rb DELETED
@@ -1,21 +0,0 @@
1
- require 'rvg/rvg'
2
-
3
- Magick::RVG.dpi = 90
4
-
5
- rvg = Magick::RVG.new(10.cm, 3.5.cm).viewbox(0, 0, 100, 35) do |canvas|
6
- canvas.background_fill = 'white'
7
- canvas.desc = "Example Use02 - Chain 'styles' to 'use'"
8
- r = Magick::RVG::Group.new do |grp|
9
- grp.rect(60, 10).styles(:fill=>'yellow')
10
- end
11
- canvas.rect(99.6, 34.6, 0.1, 0.1).styles(:fill=>'none', :stroke=>'blue', :stroke_width=>0.2)
12
-
13
- # Since the rectangle specified the fill color the :fill style is ignored here.
14
- # However, since the rectangle did not specify a stroke color, the :stroke style
15
- # specified here is respected.
16
- canvas.use(r, 20, 5).styles(:fill=>'green', :stroke=>'red')
17
- canvas.use(r, 20, 20).styles(:fill=>'green', :stroke=>'blue')
18
- end
19
-
20
- rvg.draw.write('Use02.gif')
21
-
data/doc/ex/Use03.rb DELETED
@@ -1,16 +0,0 @@
1
- require 'rvg/rvg'
2
-
3
- Magick::RVG.dpi = 90
4
-
5
- rvg = Magick::RVG.new(10.cm, 3.cm).viewbox(0, 0, 100, 30) do |canvas|
6
- canvas.background_fill = 'white'
7
- canvas.desc = "Example Use03 - 'use' with a 'transform' attribute"
8
-
9
- myrect = Magick::RVG::Group.new do |grp|
10
- grp.rect(60, 10)
11
- end
12
- canvas.rect(99.6, 29.6, 0.1, 0.1).styles(:fill=>'none', :stroke=>'blue', :stroke_width=>0.2)
13
- canvas.use(myrect).translate(20,2.5).rotate(10)
14
- end
15
-
16
- rvg.draw.write('Use03.gif')
data/doc/ex/ViewBox.rb DELETED
@@ -1,33 +0,0 @@
1
- require 'rvg/rvg'
2
-
3
- def example(cols, rows)
4
- rvg = Magick::RVG.new(cols, rows) do |canvas|
5
- canvas.background_fill = 'white'
6
- canvas.desc = <<-'END_DESC'
7
- Example ViewBox - uses the viewBox attribute to automatically create an
8
- initial user coordinate system which causes the graphic to scale to fit
9
- into the viewport no matter what size the viewport is.
10
- END_DESC
11
-
12
- canvas.viewbox(0, 0, 1500, 1000)
13
- canvas.preserve_aspect_ratio('none')
14
-
15
- # This rectangle goes from (0,0) to (1500,1000) in user space.
16
- # Because of the viewBox attribute above,
17
- # the rectangle will end up filling the entire area
18
- # reserved for the SVG content.
19
- canvas.rect(1500, 1000).styles(:fill=>'yellow',:stroke=>'blue',:stroke_width=>12)
20
-
21
- # A large, red triangle
22
- canvas.path("M 750,100 L 250,900 L 1250,900 z").styles(:fill=>'red')
23
-
24
- # A text string that spans most of the viewport
25
- canvas.text(100, 600, 'Stretch to fit').styles(:font_size=>200, :font_style=>'normal', :font_weight=>'normal', :font_family=>'Verdana')
26
-
27
- end
28
- return rvg.draw
29
- end
30
-
31
- example(300, 200).write('ViewBox_300x200.gif')
32
- example(150, 200).write('ViewBox_150x200.gif')
33
-
@@ -1,10 +0,0 @@
1
- #! /usr/local/bin/ruby -w
2
- require 'RMagick'
3
-
4
- # Demonstrate the Image#adaptive_threshold method
5
-
6
- img = Magick::Image.read("images/Flower_Hat.jpg").first
7
- result = img.adaptive_threshold
8
- result.write("adaptive_threshold.jpg")
9
- exit
10
-
data/doc/ex/add_noise.rb DELETED
@@ -1,17 +0,0 @@
1
- #! /usr/local/bin/ruby -w
2
- require 'RMagick'
3
-
4
- # Demonstrate the Image#add_noise method
5
- NOISE_TYPES = [Magick::UniformNoise, Magick::GaussianNoise,
6
- Magick::MultiplicativeGaussianNoise,
7
- Magick::ImpulseNoise, Magick::LaplacianNoise,
8
- Magick::PoissonNoise]
9
-
10
- img = Magick::Image.read('images/Flower_Hat.jpg').first
11
-
12
- NOISE_TYPES.each do |noise|
13
- copy = img.add_noise(noise)
14
- copy.write "add_noise_#{noise.to_s}.jpg"
15
-
16
- end
17
- exit
data/doc/ex/affine.rb DELETED
@@ -1,48 +0,0 @@
1
- #! /usr/local/bin/ruby -w
2
- require 'RMagick'
3
-
4
- # Demonstrate the affine primitive. Transform the
5
- # coordinate space to put the origin in the lower
6
- # left corner.
7
-
8
- imgl = Magick::ImageList.new
9
- imgl.new_image 200, 200, Magick::HatchFill.new('white','lightcyan2')
10
-
11
- gc = Magick::Draw.new
12
-
13
- max_x = imgl.columns
14
- max_y = imgl.rows
15
-
16
- # Translate the y origin to the bottom of the window.
17
- # Invert the y points by scaling by -1. Combine the
18
- # two operations using the affine method. That is, the
19
- # affine method is equivalent to:
20
- # gc.translate 0, max_y
21
- # gc.scale 1, -1
22
- gc.affine(1, 0, 0, -1, 0, max_y)
23
- gc.stroke('gray50')
24
- gc.fill('gray50')
25
- gc.stroke_width(1)
26
-
27
- # Draw up-pointing arrow.
28
- gc.polyline(10, 10, 10, max_y-10, 5, max_y-15, 15, max_y-15, 10, max_y-10)
29
-
30
- # Draw right-pointing arrow
31
- gc.polyline(10, 10, max_x-10, 10, max_x-15, 5, max_x-15, 15, max_x-10, 10)
32
-
33
- gc.draw(imgl)
34
-
35
- # Add labels. Use a different graphics context with a "normal"
36
- # coordinate system so the text isn't inverted.
37
- text_gc = Magick::Draw.new
38
- text_gc.pointsize(14)
39
- text_gc.font_weight(Magick::NormalWeight)
40
- text_gc.stroke('transparent')
41
- text_gc.text(15, max_y-15, "'0,0'")
42
- text_gc.text(max_x-20, max_y-16, "'+x'")
43
- text_gc.text(12, 15, "'+y'")
44
- text_gc.draw(imgl)
45
-
46
- imgl.border!(1, 1, "lightcyan2")
47
-
48
- imgl.write("affine.gif")
@@ -1,20 +0,0 @@
1
- #! /usr/local/bin/ruby -w
2
- require 'RMagick'
3
-
4
- # Demonstrate the Image#affine_transform method
5
-
6
- img = Magick::Image.read("images/Flower_Hat.jpg").first
7
-
8
- # Construct a simple affine matrix
9
- flipflop = Magick::AffineMatrix.new(1, Math::PI/6, Math::PI/6, 1, 0, 0)
10
-
11
- # Apply the transform
12
- img = img.affine_transform(flipflop)
13
-
14
- # Scale the image, make the background transparent,
15
- # and write it to a JPEG file.
16
- img.scale!(250.0/img.rows)
17
- img = img.matte_replace(0,0)
18
- img.write("affine_transform.jpg")
19
-
20
- exit
data/doc/ex/arc.rb DELETED
@@ -1,49 +0,0 @@
1
- #! /usr/local/bin/ruby -w
2
- require 'RMagick'
3
-
4
- i = Magick::Image.new(300, 220, Magick::HatchFill.new("white","lightcyan2"))
5
- gc = Magick::Draw.new
6
-
7
- # Draw the border rectangle.
8
- gc.fill_opacity(0)
9
- gc.stroke_width(1)
10
- gc.stroke('gray50')
11
- gc.rectangle(40, 50, 250, 180)
12
-
13
- # Draw the circles around the rectangle corners and
14
- # arc endpoints. All the circles have a 3-pixel radius.
15
- gc.circle(40, 50, 40+3, 50)
16
- gc.circle(250, 180, 250+3, 180)
17
- gc.circle(250, 114, 250+3, 114)
18
- gc.circle(146, 50, 146+3, 50)
19
-
20
- # Annotate
21
- gc.font_weight(Magick::NormalWeight)
22
- gc.font_style(Magick::NormalStyle)
23
- gc.stroke('transparent')
24
- gc.fill("black")
25
- gc.fill_opacity(1)
26
-
27
- # xMagick recognizes the braces as delimiters.
28
- gc.gravity(Magick::NorthWestGravity)
29
- gc.text(42, 37, "{40, 50}")
30
- gc.text(188, 108, "{0 degrees}")
31
-
32
- gc.gravity(Magick::SouthEastGravity)
33
- gc.text(300-250, 220-195, "{250, 180}")
34
-
35
- gc.gravity(Magick::NorthGravity)
36
- gc.text(0, 67, "{270 degrees}")
37
-
38
- # Draw the arc
39
- gc.fill_opacity(0)
40
- gc.stroke('red').stroke_width(3)
41
- gc.arc(40, 50, 250,180, 0, 270)
42
-
43
- # Draw on the canvas
44
- gc.draw(i)
45
-
46
- i.border!(1,1, "lightcyan2")
47
-
48
- #i.display
49
- i.write("arc.gif")
data/doc/ex/arcpath.rb DELETED
@@ -1,33 +0,0 @@
1
- #! /usr/local/bin/ruby -w
2
- require 'RMagick'
3
-
4
- # Demonstrate the "path" drawing primitive.
5
-
6
- imgl = Magick::ImageList.new
7
- imgl.new_image(450, 200, Magick::HatchFill.new('white','lightcyan2'))
8
-
9
- gc = Magick::Draw.new
10
-
11
- # Draw "pie chart"
12
- gc.fill('red')
13
- gc.stroke('blue')
14
- gc.stroke_width(2)
15
- gc.path('M110,100 h-75 a75,75 0 1,0 75,-75 z')
16
- gc.fill('yellow')
17
- gc.path('M97.5,87.5 v-75 a75,75 0 0,0 -75,75 z')
18
-
19
- # Draw wiggly line
20
- gc.fill_opacity(0)
21
- gc.stroke('#00cd00')
22
- gc.stroke_width(3)
23
- gc.path('M200,175 l 25,-12.5 ' +
24
- 'a12.5,12.5 -15 0,1 25,-12.5 l 25,-12.5 ' +
25
- 'a12.5,25 -15 0,1 25,-12.5 l 25,-12.5 ' +
26
- 'a12.5,37.5 -15 0,1 25,-12.5 l 25,-12.5 ' +
27
- 'a12.5,50 -15 0,1 25,-12.5 l 25,-12.5')
28
-
29
- gc.draw imgl
30
- imgl.border!(1,1, "lightcyan2")
31
-
32
- imgl.write('arcpath.gif')
33
-
data/doc/ex/arcs01.rb DELETED
@@ -1,28 +0,0 @@
1
- require 'rvg/rvg'
2
-
3
- Magick::RVG.dpi = 90
4
-
5
- rvg = Magick::RVG.new(12.cm, 5.25.cm).viewbox(0, 0, 1200, 400) do |canvas|
6
- canvas.title = "Example arcs01 - arc commands in path data"
7
- canvas.desc = <<-END_DESC
8
- Picture of a pie chart with two pie wedges and a picture
9
- of a line with arc blips
10
- END_DESC
11
- canvas.background_fill = 'white'
12
- canvas.rect(1196, 395, 1, 1).styles(:fill=>'none', :stroke=>'blue', :stroke_width=>1)
13
-
14
- canvas.path("M300,200 h-150 a150,150 0 1,0 150,-150 z").
15
- styles(:fill=>'red', :stroke=>'blue', :stroke_width=>5)
16
- canvas.path("M275,175 v-150 a150,150 0 0,0 -150,150 z").
17
- styles(:fill=>'yellow', :stroke=>'blue', :stroke_width=>5)
18
- canvas.path(<<-END_PATH
19
- M600,350 l 50,-25
20
- a25,25 -30 0,1 50,-25 l 50,-25
21
- a25,50 -30 0,1 50,-25 l 50,-25
22
- a25,75 -30 0,1 50,-25 l 50,-25
23
- a25,100 -30 0,1 50,-25 l 50,-25
24
- END_PATH
25
- ).styles(:fill=>'none', :stroke=>'red', :stroke_width=>5)
26
- end
27
-
28
- rvg.draw.write('arcs01.gif')