rmagick 4.1.0.rc1 → 4.2.0

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 (414) hide show
  1. checksums.yaml +4 -4
  2. data/.codeclimate.yml +63 -0
  3. data/.editorconfig +3 -0
  4. data/.github/ISSUE_TEMPLATE.md +17 -0
  5. data/.github/workflows/ci.yml +108 -0
  6. data/.gitignore +3 -1
  7. data/.rspec +1 -0
  8. data/.rubocop.yml +24 -0
  9. data/.rubocop_todo.yml +151 -297
  10. data/.yardopts +5 -0
  11. data/CHANGELOG.md +94 -0
  12. data/CODE_OF_CONDUCT.md +122 -7
  13. data/CONTRIBUTING.md +14 -10
  14. data/README.md +324 -0
  15. data/Rakefile +16 -22
  16. data/before_install_linux.sh +22 -32
  17. data/before_install_osx.sh +57 -2
  18. data/ext/RMagick/extconf.rb +108 -95
  19. data/ext/RMagick/rmagick.c +77 -104
  20. data/ext/RMagick/rmagick.h +77 -70
  21. data/ext/RMagick/rmdraw.c +289 -446
  22. data/ext/RMagick/rmenum.c +96 -113
  23. data/ext/RMagick/rmfill.c +49 -77
  24. data/ext/RMagick/rmilist.c +144 -244
  25. data/ext/RMagick/rmimage.c +3416 -4169
  26. data/ext/RMagick/rminfo.c +540 -738
  27. data/ext/RMagick/rmkinfo.c +21 -87
  28. data/ext/RMagick/rmmain.c +419 -246
  29. data/ext/RMagick/rmmontage.c +60 -126
  30. data/ext/RMagick/rmpixel.c +401 -345
  31. data/ext/RMagick/rmstruct.c +62 -88
  32. data/ext/RMagick/rmutil.c +148 -228
  33. data/lib/rmagick/version.rb +1 -1
  34. data/lib/rmagick_internal.rb +128 -77
  35. data/lib/rvg/clippath.rb +2 -1
  36. data/lib/rvg/container.rb +10 -5
  37. data/lib/rvg/describable.rb +1 -1
  38. data/lib/rvg/embellishable.rb +5 -4
  39. data/lib/rvg/misc.rb +15 -12
  40. data/lib/rvg/paint.rb +2 -1
  41. data/lib/rvg/pathdata.rb +12 -11
  42. data/lib/rvg/rvg.rb +8 -4
  43. data/lib/rvg/stylable.rb +9 -7
  44. data/lib/rvg/text.rb +11 -6
  45. data/lib/rvg/transformable.rb +3 -2
  46. data/lib/rvg/units.rb +1 -1
  47. data/rmagick.gemspec +8 -6
  48. metadata +46 -421
  49. data/.appveyor.yml +0 -57
  50. data/.circleci/config.yml +0 -56
  51. data/.ruby-version +0 -1
  52. data/.simplecov +0 -27
  53. data/.travis.yml +0 -64
  54. data/Doxyfile +0 -1514
  55. data/README.textile +0 -259
  56. data/benchmarks/memory/README.md +0 -50
  57. data/benchmarks/memory/image_new.rb +0 -8
  58. data/benchmarks/memory/rmagick.gnuplot +0 -16
  59. data/doc/.cvsignore +0 -1
  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 -3272
  66. data/doc/ex/InitialCoords.rb +0 -22
  67. data/doc/ex/NewCoordSys.rb +0 -30
  68. data/doc/ex/OrigCoordSys.rb +0 -16
  69. data/doc/ex/PreserveAspectRatio.rb +0 -204
  70. data/doc/ex/RotateScale.rb +0 -36
  71. data/doc/ex/Skew.rb +0 -38
  72. data/doc/ex/Use01.rb +0 -15
  73. data/doc/ex/Use02.rb +0 -20
  74. data/doc/ex/Use03.rb +0 -16
  75. data/doc/ex/ViewBox.rb +0 -31
  76. data/doc/ex/adaptive_threshold.rb +0 -9
  77. data/doc/ex/add_noise.rb +0 -16
  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 -32
  82. data/doc/ex/arcs01.rb +0 -28
  83. data/doc/ex/arcs02.rb +0 -59
  84. data/doc/ex/average.rb +0 -15
  85. data/doc/ex/axes.rb +0 -64
  86. data/doc/ex/baseline_shift01.rb +0 -17
  87. data/doc/ex/bilevel_channel.rb +0 -8
  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 -42
  91. data/doc/ex/cbezier1.rb +0 -41
  92. data/doc/ex/cbezier2.rb +0 -41
  93. data/doc/ex/cbezier3.rb +0 -41
  94. data/doc/ex/cbezier4.rb +0 -42
  95. data/doc/ex/cbezier5.rb +0 -42
  96. data/doc/ex/cbezier6.rb +0 -53
  97. data/doc/ex/channel.rb +0 -25
  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 -16
  102. data/doc/ex/clip_path.rb +0 -60
  103. data/doc/ex/coalesce.rb +0 -57
  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 -47
  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 -22
  111. data/doc/ex/composite.rb +0 -133
  112. data/doc/ex/composite_layers.rb +0 -52
  113. data/doc/ex/composite_tiled.rb +0 -21
  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 -42
  117. data/doc/ex/cubic01.rb +0 -43
  118. data/doc/ex/cubic02.rb +0 -91
  119. data/doc/ex/cycle_colormap.rb +0 -21
  120. data/doc/ex/dissolve.rb +0 -12
  121. data/doc/ex/drawcomp.rb +0 -41
  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 -21
  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 -42
  130. data/doc/ex/fill_pattern.rb +0 -23
  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 -32
  135. data/doc/ex/fonts.rb +0 -16
  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 -41
  139. data/doc/ex/get_pixels.rb +0 -45
  140. data/doc/ex/get_type_metrics.rb +0 -142
  141. data/doc/ex/gradientfill.rb +0 -27
  142. data/doc/ex/grav.rb +0 -45
  143. data/doc/ex/gravity.rb +0 -78
  144. data/doc/ex/group.rb +0 -26
  145. data/doc/ex/hatchfill.rb +0 -27
  146. data/doc/ex/image.rb +0 -44
  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.png +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.png +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.png +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/image_with_profile.jpg +0 -0
  221. data/doc/ex/images/logo400x83.gif +0 -0
  222. data/doc/ex/images/model.miff +0 -0
  223. data/doc/ex/images/notimplemented.gif +0 -0
  224. data/doc/ex/images/smile.miff +0 -0
  225. data/doc/ex/images/spin.gif +0 -0
  226. data/doc/ex/implode.rb +0 -34
  227. data/doc/ex/level.rb +0 -11
  228. data/doc/ex/level_colors.rb +0 -11
  229. data/doc/ex/line.rb +0 -41
  230. data/doc/ex/line01.rb +0 -21
  231. data/doc/ex/mask.rb +0 -35
  232. data/doc/ex/matte_fill_to_border.rb +0 -39
  233. data/doc/ex/matte_floodfill.rb +0 -32
  234. data/doc/ex/matte_replace.rb +0 -39
  235. data/doc/ex/median_filter.rb +0 -28
  236. data/doc/ex/modulate.rb +0 -11
  237. data/doc/ex/mono.rb +0 -23
  238. data/doc/ex/morph.rb +0 -25
  239. data/doc/ex/mosaic.rb +0 -37
  240. data/doc/ex/motion_blur.rb +0 -11
  241. data/doc/ex/negate.rb +0 -11
  242. data/doc/ex/negate_channel.rb +0 -9
  243. data/doc/ex/nested_rvg.rb +0 -21
  244. data/doc/ex/nonzero.rb +0 -42
  245. data/doc/ex/normalize.rb +0 -11
  246. data/doc/ex/oil_paint.rb +0 -11
  247. data/doc/ex/opacity.rb +0 -37
  248. data/doc/ex/ordered_dither.rb +0 -11
  249. data/doc/ex/path.rb +0 -63
  250. data/doc/ex/pattern1.rb +0 -25
  251. data/doc/ex/pattern2.rb +0 -26
  252. data/doc/ex/polaroid.rb +0 -26
  253. data/doc/ex/polygon.rb +0 -23
  254. data/doc/ex/polygon01.rb +0 -21
  255. data/doc/ex/polyline.rb +0 -22
  256. data/doc/ex/polyline01.rb +0 -21
  257. data/doc/ex/posterize.rb +0 -8
  258. data/doc/ex/preview.rb +0 -8
  259. data/doc/ex/qbezierpath.rb +0 -52
  260. data/doc/ex/quad01.rb +0 -34
  261. data/doc/ex/quantize-m.rb +0 -25
  262. data/doc/ex/radial_blur.rb +0 -9
  263. data/doc/ex/raise.rb +0 -8
  264. data/doc/ex/random_threshold_channel.rb +0 -13
  265. data/doc/ex/rect01.rb +0 -14
  266. data/doc/ex/rect02.rb +0 -20
  267. data/doc/ex/rectangle.rb +0 -34
  268. data/doc/ex/reduce_noise.rb +0 -28
  269. data/doc/ex/remap.rb +0 -11
  270. data/doc/ex/remap_images.rb +0 -19
  271. data/doc/ex/resize_to_fill.rb +0 -8
  272. data/doc/ex/resize_to_fit.rb +0 -8
  273. data/doc/ex/roll.rb +0 -9
  274. data/doc/ex/rotate.rb +0 -44
  275. data/doc/ex/rotate_f.rb +0 -14
  276. data/doc/ex/roundrect.rb +0 -33
  277. data/doc/ex/rubyname.rb +0 -30
  278. data/doc/ex/rvg_clippath.rb +0 -12
  279. data/doc/ex/rvg_linecap.rb +0 -42
  280. data/doc/ex/rvg_linejoin.rb +0 -40
  281. data/doc/ex/rvg_opacity.rb +0 -18
  282. data/doc/ex/rvg_pattern.rb +0 -26
  283. data/doc/ex/rvg_stroke_dasharray.rb +0 -11
  284. data/doc/ex/segment.rb +0 -11
  285. data/doc/ex/sepiatone.rb +0 -7
  286. data/doc/ex/shade.rb +0 -11
  287. data/doc/ex/shadow.rb +0 -30
  288. data/doc/ex/shave.rb +0 -15
  289. data/doc/ex/shear.rb +0 -10
  290. data/doc/ex/sketch.rb +0 -17
  291. data/doc/ex/skewx.rb +0 -51
  292. data/doc/ex/skewy.rb +0 -47
  293. data/doc/ex/smile.rb +0 -126
  294. data/doc/ex/solarize.rb +0 -11
  295. data/doc/ex/sparse_color.rb +0 -55
  296. data/doc/ex/splice.rb +0 -8
  297. data/doc/ex/spread.rb +0 -11
  298. data/doc/ex/stegano.rb +0 -54
  299. data/doc/ex/stroke_dasharray.rb +0 -42
  300. data/doc/ex/stroke_fill.rb +0 -10
  301. data/doc/ex/stroke_linecap.rb +0 -44
  302. data/doc/ex/stroke_linejoin.rb +0 -48
  303. data/doc/ex/stroke_width.rb +0 -49
  304. data/doc/ex/swirl.rb +0 -17
  305. data/doc/ex/text.rb +0 -37
  306. data/doc/ex/text01.rb +0 -16
  307. data/doc/ex/text_align.rb +0 -36
  308. data/doc/ex/text_antialias.rb +0 -37
  309. data/doc/ex/text_styles.rb +0 -19
  310. data/doc/ex/text_undercolor.rb +0 -28
  311. data/doc/ex/texture_fill_to_border.rb +0 -34
  312. data/doc/ex/texture_floodfill.rb +0 -32
  313. data/doc/ex/texturefill.rb +0 -24
  314. data/doc/ex/threshold.rb +0 -13
  315. data/doc/ex/to_blob.rb +0 -13
  316. data/doc/ex/translate.rb +0 -39
  317. data/doc/ex/transparent.rb +0 -38
  318. data/doc/ex/transpose.rb +0 -9
  319. data/doc/ex/transverse.rb +0 -9
  320. data/doc/ex/tref01.rb +0 -24
  321. data/doc/ex/triangle01.rb +0 -15
  322. data/doc/ex/trim.rb +0 -23
  323. data/doc/ex/tspan01.rb +0 -17
  324. data/doc/ex/tspan02.rb +0 -17
  325. data/doc/ex/tspan03.rb +0 -19
  326. data/doc/ex/unsharp_mask.rb +0 -28
  327. data/doc/ex/viewex.rb +0 -33
  328. data/doc/ex/vignette.rb +0 -12
  329. data/doc/ex/watermark.rb +0 -27
  330. data/doc/ex/wave.rb +0 -9
  331. data/doc/ex/wet_floor.rb +0 -58
  332. data/doc/ex/writing_mode01.rb +0 -26
  333. data/doc/ex/writing_mode02.rb +0 -26
  334. data/doc/ilist.html +0 -2056
  335. data/doc/image1.html +0 -4680
  336. data/doc/image2.html +0 -3665
  337. data/doc/image3.html +0 -4522
  338. data/doc/imageattrs.html +0 -1638
  339. data/doc/imusage.html +0 -514
  340. data/doc/index.html +0 -416
  341. data/doc/info.html +0 -1499
  342. data/doc/magick.html +0 -570
  343. data/doc/optequiv.html +0 -2435
  344. data/doc/rvg.html +0 -975
  345. data/doc/rvgclip.html +0 -248
  346. data/doc/rvggroup.html +0 -305
  347. data/doc/rvgimage.html +0 -289
  348. data/doc/rvgpattern.html +0 -475
  349. data/doc/rvgshape.html +0 -406
  350. data/doc/rvgstyle.html +0 -270
  351. data/doc/rvgtext.html +0 -465
  352. data/doc/rvgtspan.html +0 -238
  353. data/doc/rvgtut.html +0 -530
  354. data/doc/rvguse.html +0 -145
  355. data/doc/rvgxform.html +0 -294
  356. data/doc/scripts/doc.js +0 -22
  357. data/doc/scripts/stripeTables.js +0 -23
  358. data/doc/struct.html +0 -1339
  359. data/doc/usage.html +0 -1621
  360. data/examples/constitute.rb +0 -7
  361. data/examples/crop_with_gravity.rb +0 -43
  362. data/examples/demo.rb +0 -323
  363. data/examples/describe.rb +0 -41
  364. data/examples/find_similar_region.rb +0 -34
  365. data/examples/histogram.rb +0 -312
  366. data/examples/identify.rb +0 -174
  367. data/examples/image_opacity.rb +0 -28
  368. data/examples/import_export.rb +0 -31
  369. data/examples/pattern_fill.rb +0 -37
  370. data/examples/rotating_text.rb +0 -45
  371. data/examples/spinner.rb +0 -49
  372. data/examples/thumbnail.rb +0 -64
  373. data/examples/vignette.rb +0 -78
  374. data/spec/rmagick/ImageList1_spec.rb +0 -24
  375. data/spec/rmagick/draw_spec.rb +0 -155
  376. data/spec/rmagick/image/blue_shift_spec.rb +0 -14
  377. data/spec/rmagick/image/channel_entropy_spec.rb +0 -9
  378. data/spec/rmagick/image/composite_spec.rb +0 -72
  379. data/spec/rmagick/image/constitute_spec.rb +0 -13
  380. data/spec/rmagick/image/dispatch_spec.rb +0 -16
  381. data/spec/rmagick/image/dissolve_spec.rb +0 -54
  382. data/spec/rmagick/image/from_blob_spec.rb +0 -12
  383. data/spec/rmagick/image/ping_spec.rb +0 -12
  384. data/spec/rmagick/image/properties_spec.rb +0 -27
  385. data/spec/rmagick/image/read_spec.rb +0 -28
  386. data/spec/spec_helper.rb +0 -9
  387. data/spec/support/issue_200/app.rb +0 -8
  388. data/test/Draw.rb +0 -351
  389. data/test/Enum.rb +0 -228
  390. data/test/Fill.rb +0 -93
  391. data/test/Image1.rb +0 -606
  392. data/test/Image2.rb +0 -1408
  393. data/test/Image3.rb +0 -1086
  394. data/test/ImageList1.rb +0 -858
  395. data/test/ImageList2.rb +0 -375
  396. data/test/Image_attributes.rb +0 -635
  397. data/test/Import_Export.rb +0 -111
  398. data/test/Info.rb +0 -436
  399. data/test/KernelInfo.rb +0 -59
  400. data/test/Magick.rb +0 -311
  401. data/test/Pixel.rb +0 -259
  402. data/test/PolaroidOptions.rb +0 -23
  403. data/test/Preview.rb +0 -26
  404. data/test/Struct.rb +0 -45
  405. data/test/appearance/Montage.rb +0 -26
  406. data/test/appearance/appearance_assertion.rb +0 -13
  407. data/test/appearance/expected/montage_border_color.jpg +0 -0
  408. data/test/cmyk.icm +0 -0
  409. data/test/lib/internal/Draw.rb +0 -811
  410. data/test/lib/internal/Geometry.rb +0 -98
  411. data/test/lib/internal/Magick.rb +0 -40
  412. data/test/srgb.icm +0 -0
  413. data/test/test_all_basic.rb +0 -49
  414. data/test/tmpnam_test.rb +0 -50
@@ -1,22 +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')
@@ -1,30 +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
- end
29
-
30
- rvg.draw.write('NewCoordSys.gif')
@@ -1,16 +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
- end
15
-
16
- rvg.draw.write('OrigCoordSys.gif')
@@ -1,204 +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
- 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')
@@ -1,36 +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')
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,15 +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')
data/doc/ex/Use02.rb DELETED
@@ -1,20 +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')
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,31 +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
- end
27
- rvg.draw
28
- end
29
-
30
- example(300, 200).write('ViewBox_300x200.gif')
31
- example(150, 200).write('ViewBox_150x200.gif')
@@ -1,9 +0,0 @@
1
- #!/usr/bin/env 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