rmagick 3.2.0 → 4.3.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 (420) hide show
  1. checksums.yaml +4 -4
  2. data/.codeclimate.yml +63 -0
  3. data/.devcontainer/Dockerfile +14 -0
  4. data/.devcontainer/ImageMagick6/devcontainer.json +11 -0
  5. data/.devcontainer/devcontainer.json +11 -0
  6. data/.devcontainer/setup-repo.sh +10 -0
  7. data/.devcontainer/setup-user.sh +45 -0
  8. data/.editorconfig +3 -0
  9. data/.github/ISSUE_TEMPLATE.md +17 -0
  10. data/.github/workflows/ci.yml +79 -0
  11. data/.gitignore +3 -1
  12. data/.rspec +1 -0
  13. data/.rubocop.yml +24 -0
  14. data/.rubocop_todo.yml +151 -297
  15. data/.yardopts +5 -0
  16. data/CHANGELOG.md +233 -0
  17. data/CODE_OF_CONDUCT.md +122 -7
  18. data/CONTRIBUTING.md +14 -10
  19. data/README.md +326 -0
  20. data/Rakefile +16 -22
  21. data/before_install_linux.sh +22 -28
  22. data/before_install_osx.sh +57 -2
  23. data/ext/RMagick/extconf.rb +149 -105
  24. data/ext/RMagick/rmagick.c +77 -104
  25. data/ext/RMagick/rmagick.h +121 -103
  26. data/ext/RMagick/rmdraw.c +364 -436
  27. data/ext/RMagick/rmenum.c +106 -114
  28. data/ext/RMagick/rmfill.c +149 -70
  29. data/ext/RMagick/rmilist.c +225 -367
  30. data/ext/RMagick/rmimage.c +4751 -4405
  31. data/ext/RMagick/rminfo.c +574 -787
  32. data/ext/RMagick/rmkinfo.c +51 -121
  33. data/ext/RMagick/rmmain.c +454 -286
  34. data/ext/RMagick/rmmontage.c +64 -130
  35. data/ext/RMagick/rmpixel.c +488 -437
  36. data/ext/RMagick/rmstruct.c +83 -96
  37. data/ext/RMagick/rmutil.c +302 -214
  38. data/lib/rmagick/version.rb +1 -1
  39. data/lib/rmagick_internal.rb +138 -93
  40. data/lib/rvg/clippath.rb +2 -1
  41. data/lib/rvg/container.rb +10 -5
  42. data/lib/rvg/describable.rb +1 -1
  43. data/lib/rvg/embellishable.rb +5 -4
  44. data/lib/rvg/misc.rb +15 -12
  45. data/lib/rvg/paint.rb +2 -1
  46. data/lib/rvg/pathdata.rb +12 -11
  47. data/lib/rvg/rvg.rb +12 -8
  48. data/lib/rvg/stylable.rb +9 -7
  49. data/lib/rvg/text.rb +11 -6
  50. data/lib/rvg/transformable.rb +3 -2
  51. data/lib/rvg/units.rb +1 -1
  52. data/rmagick.gemspec +10 -11
  53. metadata +52 -423
  54. data/.appveyor.yml +0 -45
  55. data/.circleci/config.yml +0 -56
  56. data/.ruby-version +0 -1
  57. data/.simplecov +0 -27
  58. data/.travis.yml +0 -62
  59. data/Doxyfile +0 -1514
  60. data/README.textile +0 -259
  61. data/benchmarks/memory/README.md +0 -50
  62. data/benchmarks/memory/image_new.rb +0 -8
  63. data/benchmarks/memory/rmagick.gnuplot +0 -16
  64. data/doc/.cvsignore +0 -1
  65. data/doc/comtasks.html +0 -287
  66. data/doc/constants.html +0 -1581
  67. data/doc/css/doc.css +0 -299
  68. data/doc/css/popup.css +0 -34
  69. data/doc/css/ref.css +0 -67
  70. data/doc/draw.html +0 -3272
  71. data/doc/ex/InitialCoords.rb +0 -22
  72. data/doc/ex/NewCoordSys.rb +0 -30
  73. data/doc/ex/OrigCoordSys.rb +0 -16
  74. data/doc/ex/PreserveAspectRatio.rb +0 -204
  75. data/doc/ex/RotateScale.rb +0 -36
  76. data/doc/ex/Skew.rb +0 -38
  77. data/doc/ex/Use01.rb +0 -15
  78. data/doc/ex/Use02.rb +0 -20
  79. data/doc/ex/Use03.rb +0 -16
  80. data/doc/ex/ViewBox.rb +0 -31
  81. data/doc/ex/adaptive_threshold.rb +0 -9
  82. data/doc/ex/add_noise.rb +0 -16
  83. data/doc/ex/affine.rb +0 -48
  84. data/doc/ex/affine_transform.rb +0 -20
  85. data/doc/ex/arc.rb +0 -49
  86. data/doc/ex/arcpath.rb +0 -32
  87. data/doc/ex/arcs01.rb +0 -28
  88. data/doc/ex/arcs02.rb +0 -59
  89. data/doc/ex/average.rb +0 -15
  90. data/doc/ex/axes.rb +0 -64
  91. data/doc/ex/baseline_shift01.rb +0 -17
  92. data/doc/ex/bilevel_channel.rb +0 -8
  93. data/doc/ex/blur_image.rb +0 -12
  94. data/doc/ex/border.rb +0 -10
  95. data/doc/ex/bounding_box.rb +0 -42
  96. data/doc/ex/cbezier1.rb +0 -41
  97. data/doc/ex/cbezier2.rb +0 -41
  98. data/doc/ex/cbezier3.rb +0 -41
  99. data/doc/ex/cbezier4.rb +0 -42
  100. data/doc/ex/cbezier5.rb +0 -42
  101. data/doc/ex/cbezier6.rb +0 -53
  102. data/doc/ex/channel.rb +0 -25
  103. data/doc/ex/charcoal.rb +0 -12
  104. data/doc/ex/chop.rb +0 -29
  105. data/doc/ex/circle.rb +0 -33
  106. data/doc/ex/circle01.rb +0 -16
  107. data/doc/ex/clip_path.rb +0 -60
  108. data/doc/ex/coalesce.rb +0 -57
  109. data/doc/ex/color_fill_to_border.rb +0 -29
  110. data/doc/ex/color_floodfill.rb +0 -28
  111. data/doc/ex/color_histogram.rb +0 -47
  112. data/doc/ex/color_reset.rb +0 -11
  113. data/doc/ex/colorize.rb +0 -16
  114. data/doc/ex/colors.rb +0 -64
  115. data/doc/ex/compose_mask.rb +0 -22
  116. data/doc/ex/composite.rb +0 -133
  117. data/doc/ex/composite_layers.rb +0 -52
  118. data/doc/ex/composite_tiled.rb +0 -21
  119. data/doc/ex/contrast.rb +0 -36
  120. data/doc/ex/crop.rb +0 -31
  121. data/doc/ex/crop_with_gravity.rb +0 -42
  122. data/doc/ex/cubic01.rb +0 -43
  123. data/doc/ex/cubic02.rb +0 -91
  124. data/doc/ex/cycle_colormap.rb +0 -21
  125. data/doc/ex/dissolve.rb +0 -12
  126. data/doc/ex/drawcomp.rb +0 -41
  127. data/doc/ex/drop_shadow.rb +0 -60
  128. data/doc/ex/edge.rb +0 -11
  129. data/doc/ex/ellipse.rb +0 -45
  130. data/doc/ex/ellipse01.rb +0 -21
  131. data/doc/ex/emboss.rb +0 -11
  132. data/doc/ex/enhance.rb +0 -28
  133. data/doc/ex/equalize.rb +0 -11
  134. data/doc/ex/evenodd.rb +0 -42
  135. data/doc/ex/fill_pattern.rb +0 -23
  136. data/doc/ex/flatten_images.rb +0 -36
  137. data/doc/ex/flip.rb +0 -11
  138. data/doc/ex/flop.rb +0 -11
  139. data/doc/ex/font_styles.rb +0 -32
  140. data/doc/ex/fonts.rb +0 -16
  141. data/doc/ex/frame.rb +0 -12
  142. data/doc/ex/gaussian_blur.rb +0 -11
  143. data/doc/ex/get_multiline_type_metrics.rb +0 -41
  144. data/doc/ex/get_pixels.rb +0 -45
  145. data/doc/ex/get_type_metrics.rb +0 -142
  146. data/doc/ex/gradientfill.rb +0 -27
  147. data/doc/ex/grav.rb +0 -45
  148. data/doc/ex/gravity.rb +0 -78
  149. data/doc/ex/group.rb +0 -26
  150. data/doc/ex/hatchfill.rb +0 -27
  151. data/doc/ex/image.rb +0 -44
  152. data/doc/ex/images/Apple.miff +0 -0
  153. data/doc/ex/images/Ballerina.jpg +0 -0
  154. data/doc/ex/images/Ballerina3.jpg +0 -0
  155. data/doc/ex/images/Button_0.gif +0 -0
  156. data/doc/ex/images/Button_1.gif +0 -0
  157. data/doc/ex/images/Button_2.gif +0 -0
  158. data/doc/ex/images/Button_3.gif +0 -0
  159. data/doc/ex/images/Button_4.gif +0 -0
  160. data/doc/ex/images/Button_5.gif +0 -0
  161. data/doc/ex/images/Button_6.gif +0 -0
  162. data/doc/ex/images/Button_7.gif +0 -0
  163. data/doc/ex/images/Button_8.gif +0 -0
  164. data/doc/ex/images/Button_9.gif +0 -0
  165. data/doc/ex/images/Button_A.gif +0 -0
  166. data/doc/ex/images/Button_B.gif +0 -0
  167. data/doc/ex/images/Button_C.gif +0 -0
  168. data/doc/ex/images/Button_D.gif +0 -0
  169. data/doc/ex/images/Button_E.gif +0 -0
  170. data/doc/ex/images/Button_F.gif +0 -0
  171. data/doc/ex/images/Button_G.gif +0 -0
  172. data/doc/ex/images/Button_H.gif +0 -0
  173. data/doc/ex/images/Button_I.gif +0 -0
  174. data/doc/ex/images/Button_J.gif +0 -0
  175. data/doc/ex/images/Button_K.gif +0 -0
  176. data/doc/ex/images/Button_L.gif +0 -0
  177. data/doc/ex/images/Button_M.gif +0 -0
  178. data/doc/ex/images/Button_N.gif +0 -0
  179. data/doc/ex/images/Button_O.gif +0 -0
  180. data/doc/ex/images/Button_P.gif +0 -0
  181. data/doc/ex/images/Button_Q.gif +0 -0
  182. data/doc/ex/images/Button_R.gif +0 -0
  183. data/doc/ex/images/Button_S.gif +0 -0
  184. data/doc/ex/images/Button_T.gif +0 -0
  185. data/doc/ex/images/Button_U.gif +0 -0
  186. data/doc/ex/images/Button_V.gif +0 -0
  187. data/doc/ex/images/Button_W.gif +0 -0
  188. data/doc/ex/images/Button_X.gif +0 -0
  189. data/doc/ex/images/Button_Y.gif +0 -0
  190. data/doc/ex/images/Button_Z.gif +0 -0
  191. data/doc/ex/images/Cheetah.jpg +0 -0
  192. data/doc/ex/images/Coffee.png +0 -0
  193. data/doc/ex/images/Flower_Hat.jpg +0 -0
  194. data/doc/ex/images/Gold_Statue.jpg +0 -0
  195. data/doc/ex/images/Hot_Air_Balloons.jpg +0 -0
  196. data/doc/ex/images/Hot_Air_Balloons_H.jpg +0 -0
  197. data/doc/ex/images/Leaf.miff +0 -0
  198. data/doc/ex/images/No.png +0 -0
  199. data/doc/ex/images/Polynesia.jpg +0 -0
  200. data/doc/ex/images/Red_Rocks.jpg +0 -0
  201. data/doc/ex/images/Rocks_On_Beach.miff +0 -0
  202. data/doc/ex/images/Shorts.jpg +0 -0
  203. data/doc/ex/images/Snake.png +0 -0
  204. data/doc/ex/images/Violin.jpg +0 -0
  205. data/doc/ex/images/Yellow_Rose.miff +0 -0
  206. data/doc/ex/images/big-duck.gif +0 -0
  207. data/doc/ex/images/duck.gif +0 -0
  208. data/doc/ex/images/duck0.gif +0 -0
  209. data/doc/ex/images/duck1.gif +0 -0
  210. data/doc/ex/images/duck10.gif +0 -0
  211. data/doc/ex/images/duck11.gif +0 -0
  212. data/doc/ex/images/duck12.gif +0 -0
  213. data/doc/ex/images/duck13.gif +0 -0
  214. data/doc/ex/images/duck14.gif +0 -0
  215. data/doc/ex/images/duck15.gif +0 -0
  216. data/doc/ex/images/duck2.gif +0 -0
  217. data/doc/ex/images/duck3.gif +0 -0
  218. data/doc/ex/images/duck4.gif +0 -0
  219. data/doc/ex/images/duck5.gif +0 -0
  220. data/doc/ex/images/duck6.gif +0 -0
  221. data/doc/ex/images/duck7.gif +0 -0
  222. data/doc/ex/images/duck8.gif +0 -0
  223. data/doc/ex/images/duck9.gif +0 -0
  224. data/doc/ex/images/graydient230x6.gif +0 -0
  225. data/doc/ex/images/image_with_profile.jpg +0 -0
  226. data/doc/ex/images/logo400x83.gif +0 -0
  227. data/doc/ex/images/model.miff +0 -0
  228. data/doc/ex/images/notimplemented.gif +0 -0
  229. data/doc/ex/images/smile.miff +0 -0
  230. data/doc/ex/images/spin.gif +0 -0
  231. data/doc/ex/implode.rb +0 -34
  232. data/doc/ex/level.rb +0 -11
  233. data/doc/ex/level_colors.rb +0 -11
  234. data/doc/ex/line.rb +0 -41
  235. data/doc/ex/line01.rb +0 -21
  236. data/doc/ex/mask.rb +0 -35
  237. data/doc/ex/matte_fill_to_border.rb +0 -39
  238. data/doc/ex/matte_floodfill.rb +0 -32
  239. data/doc/ex/matte_replace.rb +0 -39
  240. data/doc/ex/median_filter.rb +0 -28
  241. data/doc/ex/modulate.rb +0 -11
  242. data/doc/ex/mono.rb +0 -23
  243. data/doc/ex/morph.rb +0 -25
  244. data/doc/ex/mosaic.rb +0 -37
  245. data/doc/ex/motion_blur.rb +0 -11
  246. data/doc/ex/negate.rb +0 -11
  247. data/doc/ex/negate_channel.rb +0 -9
  248. data/doc/ex/nested_rvg.rb +0 -21
  249. data/doc/ex/nonzero.rb +0 -42
  250. data/doc/ex/normalize.rb +0 -11
  251. data/doc/ex/oil_paint.rb +0 -11
  252. data/doc/ex/opacity.rb +0 -37
  253. data/doc/ex/ordered_dither.rb +0 -11
  254. data/doc/ex/path.rb +0 -63
  255. data/doc/ex/pattern1.rb +0 -25
  256. data/doc/ex/pattern2.rb +0 -26
  257. data/doc/ex/polaroid.rb +0 -26
  258. data/doc/ex/polygon.rb +0 -23
  259. data/doc/ex/polygon01.rb +0 -21
  260. data/doc/ex/polyline.rb +0 -22
  261. data/doc/ex/polyline01.rb +0 -21
  262. data/doc/ex/posterize.rb +0 -8
  263. data/doc/ex/preview.rb +0 -8
  264. data/doc/ex/qbezierpath.rb +0 -52
  265. data/doc/ex/quad01.rb +0 -34
  266. data/doc/ex/quantize-m.rb +0 -25
  267. data/doc/ex/radial_blur.rb +0 -9
  268. data/doc/ex/raise.rb +0 -8
  269. data/doc/ex/random_threshold_channel.rb +0 -13
  270. data/doc/ex/rect01.rb +0 -14
  271. data/doc/ex/rect02.rb +0 -20
  272. data/doc/ex/rectangle.rb +0 -34
  273. data/doc/ex/reduce_noise.rb +0 -28
  274. data/doc/ex/remap.rb +0 -11
  275. data/doc/ex/remap_images.rb +0 -19
  276. data/doc/ex/resize_to_fill.rb +0 -8
  277. data/doc/ex/resize_to_fit.rb +0 -8
  278. data/doc/ex/roll.rb +0 -9
  279. data/doc/ex/rotate.rb +0 -44
  280. data/doc/ex/rotate_f.rb +0 -14
  281. data/doc/ex/roundrect.rb +0 -33
  282. data/doc/ex/rubyname.rb +0 -30
  283. data/doc/ex/rvg_clippath.rb +0 -12
  284. data/doc/ex/rvg_linecap.rb +0 -42
  285. data/doc/ex/rvg_linejoin.rb +0 -40
  286. data/doc/ex/rvg_opacity.rb +0 -18
  287. data/doc/ex/rvg_pattern.rb +0 -26
  288. data/doc/ex/rvg_stroke_dasharray.rb +0 -11
  289. data/doc/ex/segment.rb +0 -11
  290. data/doc/ex/sepiatone.rb +0 -7
  291. data/doc/ex/shade.rb +0 -11
  292. data/doc/ex/shadow.rb +0 -30
  293. data/doc/ex/shave.rb +0 -15
  294. data/doc/ex/shear.rb +0 -10
  295. data/doc/ex/sketch.rb +0 -17
  296. data/doc/ex/skewx.rb +0 -51
  297. data/doc/ex/skewy.rb +0 -47
  298. data/doc/ex/smile.rb +0 -126
  299. data/doc/ex/solarize.rb +0 -11
  300. data/doc/ex/sparse_color.rb +0 -55
  301. data/doc/ex/splice.rb +0 -8
  302. data/doc/ex/spread.rb +0 -11
  303. data/doc/ex/stegano.rb +0 -54
  304. data/doc/ex/stroke_dasharray.rb +0 -42
  305. data/doc/ex/stroke_fill.rb +0 -10
  306. data/doc/ex/stroke_linecap.rb +0 -44
  307. data/doc/ex/stroke_linejoin.rb +0 -48
  308. data/doc/ex/stroke_width.rb +0 -49
  309. data/doc/ex/swirl.rb +0 -17
  310. data/doc/ex/text.rb +0 -37
  311. data/doc/ex/text01.rb +0 -16
  312. data/doc/ex/text_align.rb +0 -36
  313. data/doc/ex/text_antialias.rb +0 -37
  314. data/doc/ex/text_styles.rb +0 -19
  315. data/doc/ex/text_undercolor.rb +0 -28
  316. data/doc/ex/texture_fill_to_border.rb +0 -34
  317. data/doc/ex/texture_floodfill.rb +0 -32
  318. data/doc/ex/texturefill.rb +0 -24
  319. data/doc/ex/threshold.rb +0 -13
  320. data/doc/ex/to_blob.rb +0 -13
  321. data/doc/ex/translate.rb +0 -39
  322. data/doc/ex/transparent.rb +0 -38
  323. data/doc/ex/transpose.rb +0 -9
  324. data/doc/ex/transverse.rb +0 -9
  325. data/doc/ex/tref01.rb +0 -24
  326. data/doc/ex/triangle01.rb +0 -15
  327. data/doc/ex/trim.rb +0 -23
  328. data/doc/ex/tspan01.rb +0 -17
  329. data/doc/ex/tspan02.rb +0 -17
  330. data/doc/ex/tspan03.rb +0 -19
  331. data/doc/ex/unsharp_mask.rb +0 -28
  332. data/doc/ex/viewex.rb +0 -33
  333. data/doc/ex/vignette.rb +0 -12
  334. data/doc/ex/watermark.rb +0 -27
  335. data/doc/ex/wave.rb +0 -9
  336. data/doc/ex/wet_floor.rb +0 -58
  337. data/doc/ex/writing_mode01.rb +0 -26
  338. data/doc/ex/writing_mode02.rb +0 -26
  339. data/doc/ilist.html +0 -2056
  340. data/doc/image1.html +0 -4680
  341. data/doc/image2.html +0 -3665
  342. data/doc/image3.html +0 -4522
  343. data/doc/imageattrs.html +0 -1638
  344. data/doc/imusage.html +0 -514
  345. data/doc/index.html +0 -416
  346. data/doc/info.html +0 -1499
  347. data/doc/magick.html +0 -570
  348. data/doc/optequiv.html +0 -2435
  349. data/doc/rvg.html +0 -975
  350. data/doc/rvgclip.html +0 -248
  351. data/doc/rvggroup.html +0 -305
  352. data/doc/rvgimage.html +0 -289
  353. data/doc/rvgpattern.html +0 -475
  354. data/doc/rvgshape.html +0 -406
  355. data/doc/rvgstyle.html +0 -270
  356. data/doc/rvgtext.html +0 -465
  357. data/doc/rvgtspan.html +0 -238
  358. data/doc/rvgtut.html +0 -530
  359. data/doc/rvguse.html +0 -145
  360. data/doc/rvgxform.html +0 -294
  361. data/doc/scripts/doc.js +0 -22
  362. data/doc/scripts/stripeTables.js +0 -23
  363. data/doc/struct.html +0 -1339
  364. data/doc/usage.html +0 -1621
  365. data/examples/constitute.rb +0 -7
  366. data/examples/crop_with_gravity.rb +0 -42
  367. data/examples/demo.rb +0 -323
  368. data/examples/describe.rb +0 -41
  369. data/examples/find_similar_region.rb +0 -34
  370. data/examples/histogram.rb +0 -312
  371. data/examples/identify.rb +0 -174
  372. data/examples/image_opacity.rb +0 -28
  373. data/examples/import_export.rb +0 -31
  374. data/examples/pattern_fill.rb +0 -37
  375. data/examples/rotating_text.rb +0 -45
  376. data/examples/spinner.rb +0 -49
  377. data/examples/thumbnail.rb +0 -64
  378. data/examples/vignette.rb +0 -78
  379. data/lib/obsolete.rb +0 -66
  380. data/spec/rmagick/ImageList1_spec.rb +0 -24
  381. data/spec/rmagick/draw_spec.rb +0 -155
  382. data/spec/rmagick/image/blue_shift_spec.rb +0 -14
  383. data/spec/rmagick/image/channel_entropy_spec.rb +0 -9
  384. data/spec/rmagick/image/composite_spec.rb +0 -72
  385. data/spec/rmagick/image/constitute_spec.rb +0 -13
  386. data/spec/rmagick/image/dispatch_spec.rb +0 -16
  387. data/spec/rmagick/image/from_blob_spec.rb +0 -12
  388. data/spec/rmagick/image/ping_spec.rb +0 -12
  389. data/spec/rmagick/image/properties_spec.rb +0 -27
  390. data/spec/rmagick/image/read_spec.rb +0 -28
  391. data/spec/spec_helper.rb +0 -10
  392. data/spec/support/issue_200/app.rb +0 -8
  393. data/test/Draw.rb +0 -351
  394. data/test/Enum.rb +0 -228
  395. data/test/Fill.rb +0 -93
  396. data/test/Image1.rb +0 -627
  397. data/test/Image2.rb +0 -1426
  398. data/test/Image3.rb +0 -1091
  399. data/test/ImageList1.rb +0 -858
  400. data/test/ImageList2.rb +0 -406
  401. data/test/Image_attributes.rb +0 -666
  402. data/test/Import_Export.rb +0 -115
  403. data/test/Info.rb +0 -444
  404. data/test/KernelInfo.rb +0 -67
  405. data/test/Magick.rb +0 -311
  406. data/test/Pixel.rb +0 -285
  407. data/test/PolaroidOptions.rb +0 -23
  408. data/test/Preview.rb +0 -26
  409. data/test/Struct.rb +0 -45
  410. data/test/appearance/Montage.rb +0 -26
  411. data/test/appearance/appearance_assertion.rb +0 -13
  412. data/test/appearance/expected/montage_border_color.jpg +0 -0
  413. data/test/cmyk.icm +0 -0
  414. data/test/lib/Obsolete.rb +0 -30
  415. data/test/lib/internal/Draw.rb +0 -823
  416. data/test/lib/internal/Geometry.rb +0 -98
  417. data/test/lib/internal/Magick.rb +0 -40
  418. data/test/srgb.icm +0 -0
  419. data/test/test_all_basic.rb +0 -49
  420. data/test/tmpnam_test.rb +0 -50
@@ -1,142 +0,0 @@
1
- #!/usr/bin/env ruby -w
2
- require 'rmagick'
3
-
4
- # Add a method for drawing braces.
5
- module Magick
6
- class Draw
7
- # (w,h) - width & height of rectangle enclosing brace.
8
- # Normally the brace is drawn with its opening to the
9
- # left and its lower point on the origin.
10
- #
11
- # Set w < 0 to draw right-opening brace. Set h < 0 to
12
- # position top point at origin.
13
- #
14
- # The placement & orientation is affected by the
15
- # current user coordinate system.
16
- def brace(w, h)
17
- raise(ArgumentError, 'width must be != 0') unless w != 0
18
- raise(ArgumentError, 'height must be != 0') unless h != 0
19
-
20
- path("M0,0 Q#{w},0 #{w / 2.0},#{-h / 4.0} T#{w},#{-h / 2.0}" \
21
- "Q0,#{-h / 2.0} #{w / 2.0},#{-(3.0 * h / 4.0)} T0,#{-h}")
22
- end
23
- end
24
- end
25
-
26
- Origin_x = 110
27
- Origin_y = 230
28
- Glyph = 'g'
29
- Face = RUBY_PLATFORM =~ /mswin/ ? 'Verdana' : 'Times'
30
-
31
- canvas = Magick::Image.new(410, 320, Magick::HatchFill.new('white', 'lightcyan2'))
32
-
33
- # Draw a big lowercase 'g' on the canvas. Leave room on all sides for
34
- # the labels. Use 'undercolor' to set off the glyph.
35
- glyph = Magick::Draw.new
36
- glyph.annotate(canvas, 0, 0, Origin_x, Origin_y, Glyph) do
37
- glyph.pointsize = 124
38
- glyph.stroke = 'none'
39
- glyph.fill = 'black'
40
- glyph.font_family = Face
41
- glyph.undercolor = '#ffff00c0'
42
- end
43
-
44
- # Call get_type_metrics. This is what this example's all about.
45
- metrics = glyph.get_type_metrics(canvas, Glyph)
46
-
47
- gc = Magick::Draw.new
48
- gc.translate(Origin_x, Origin_y)
49
-
50
- # Draw the origin as a big red dot.
51
- gc.stroke('red')
52
- gc.fill('red')
53
- gc.circle(0, 0, 0, 2)
54
-
55
- # All our lines will be medium-gray, dashed, and thin.
56
- gc.stroke('gray50')
57
- gc.stroke_dasharray(5, 2)
58
- gc.stroke_width(1)
59
- gc.fill('none')
60
-
61
- # baseline
62
- gc.line(-10, 0, metrics.width + 20, 0)
63
-
64
- # a vertical line through the origin
65
- gc.line(0, -metrics.descent - metrics.height - 10, 0, -metrics.descent + 15)
66
-
67
- # descent
68
- gc.line(-10, -metrics.descent, metrics.width + 20, -metrics.descent)
69
-
70
- # ascent
71
- gc.line(-10, -metrics.ascent, metrics.width + 20, -metrics.ascent)
72
-
73
- # height
74
- gc.line(-10, -metrics.descent - metrics.height,
75
- metrics.width + 10, -metrics.descent - metrics.height)
76
-
77
- # width
78
- gc.line(metrics.width, -metrics.descent - metrics.height - 10,
79
- metrics.width, -metrics.descent + 20)
80
-
81
- # max_advance
82
- gc.line(metrics.max_advance, -10, metrics.max_advance, -metrics.descent + 20)
83
-
84
- gc.draw(canvas)
85
-
86
- # Draw the braces and labels. Position the braces by transforming the
87
- # user coordinate system with translate and rotate methods.
88
- gc = Magick::Draw.new
89
- gc.font_family('Face')
90
- gc.pointsize(13)
91
- gc.fill('none')
92
- gc.stroke('black')
93
- gc.stroke_width(1)
94
- gc.translate(Origin_x, Origin_y)
95
-
96
- # between origin and descent
97
- gc.push
98
- gc.translate(metrics.width + 23, 0)
99
- gc.brace(10, metrics.descent)
100
- gc.pop
101
-
102
- # between origin and ascent
103
- gc.push
104
- gc.translate(metrics.width + 23, 0)
105
- gc.brace(10, metrics.ascent)
106
- gc.pop
107
-
108
- # between origin and height
109
- gc.push
110
- gc.translate(-13, -metrics.descent - metrics.height)
111
- gc.rotate(180)
112
- gc.brace(10, metrics.height)
113
- gc.pop
114
-
115
- # between origin and width
116
- gc.push
117
- gc.translate(metrics.width, -metrics.descent - metrics.height - 10 - 3)
118
- gc.rotate(-90)
119
- gc.brace(10, metrics.width)
120
- gc.pop
121
-
122
- # between origin and max_advance
123
- gc.push
124
- gc.translate(0, -metrics.descent + 15)
125
- gc.rotate(90)
126
- gc.brace(10, metrics.max_advance)
127
- gc.pop
128
-
129
- # Add labels
130
- gc.font_weight(Magick::NormalWeight)
131
- gc.font_style(Magick::NormalStyle)
132
- gc.stroke('none')
133
- gc.fill('black')
134
- gc.text(metrics.width + 40, -(metrics.ascent / 2) + 4, 'ascent')
135
- gc.text(metrics.width + 40, -(metrics.descent / 2) + 4, 'descent')
136
- gc.text(-60, -metrics.descent - metrics.height / 2 + 4, 'height')
137
- gc.text((metrics.width / 2) - 15, -metrics.descent - metrics.height - 25, 'width')
138
- gc.text(metrics.max_advance / 2 - 38, -metrics.descent + 35, 'max_advance')
139
-
140
- gc.draw(canvas)
141
- canvas.border!(1, 1, 'blue')
142
- canvas.write('get_type_metrics.gif')
@@ -1,27 +0,0 @@
1
- #!/usr/bin/env ruby -w
2
- require 'rmagick'
3
-
4
- # Demonstrate the GradientFill class
5
-
6
- Rows = 100
7
- Cols = 300
8
-
9
- Start = '#900'
10
- End = '#000'
11
-
12
- fill = Magick::GradientFill.new(0, 0, 0, Rows, Start, End)
13
- img = Magick::Image.new(Cols, Rows, fill)
14
-
15
- # Annotate the filled image with the code that created the fill.
16
-
17
- ann = Magick::Draw.new
18
- ann.annotate(img, 0, 0, 0, 0, "GradientFill.new(0, 0, 0, #{Rows}, '#{Start}', '#{End}')") do
19
- self.gravity = Magick::CenterGravity
20
- self.fill = 'white'
21
- self.stroke = 'transparent'
22
- self.pointsize = 14
23
- end
24
-
25
- # img.display
26
- img.write('gradientfill.gif')
27
- exit
data/doc/ex/grav.rb DELETED
@@ -1,45 +0,0 @@
1
- #!/usr/bin/env ruby -w
2
-
3
- require 'rmagick'
4
-
5
- imgl = Magick::ImageList.new
6
- imgl.new_image(400, 200, Magick::HatchFill.new('white', 'lightcyan2'))
7
-
8
- gc = Magick::Draw.new
9
-
10
- # Draw blue lines to indicate positioning
11
- gc.stroke('blue')
12
- gc.fill('transparent')
13
- gc.rectangle(20, 20, 380, 180)
14
- gc.line(200, 20, 200, 180)
15
- gc.line(20, 100, 380, 100)
16
-
17
- # Draw text at all 9 compass points.
18
- gc.font_weight(Magick::NormalWeight)
19
- gc.font_style(Magick::NormalStyle)
20
- gc.stroke('transparent')
21
- gc.fill('black')
22
- gc.gravity(Magick::NorthWestGravity)
23
- gc.text(20, 20, 'NorthWestGravity')
24
- gc.gravity(Magick::NorthGravity)
25
- gc.text(0, 20, 'NorthGravity')
26
- gc.gravity(Magick::NorthEastGravity)
27
- gc.text(20, 20, 'NorthEastGravity')
28
- gc.gravity(Magick::WestGravity)
29
- gc.text(20, 0, 'WestGravity')
30
- gc.gravity(Magick::CenterGravity)
31
- gc.text(0, 0, 'CenterGravity')
32
- gc.gravity(Magick::EastGravity)
33
- gc.text(20, 0, 'EastGravity')
34
- gc.gravity(Magick::SouthWestGravity)
35
- gc.text(20, 20, 'SouthWestGravity')
36
- gc.gravity(Magick::SouthGravity)
37
- gc.text(0, 20, 'SouthGravity')
38
- gc.gravity(Magick::SouthEastGravity)
39
- gc.text(20, 20, 'SouthEastGravity')
40
- gc.draw(imgl)
41
-
42
- imgl.border!(1, 1, 'lightcyan2')
43
-
44
- imgl.write('grav.gif')
45
- exit
data/doc/ex/gravity.rb DELETED
@@ -1,78 +0,0 @@
1
- #!/usr/bin/env ruby -w
2
- #
3
- # A RMagick version of Magick++/demo/gravity.cpp
4
- #
5
-
6
- require 'rmagick'
7
-
8
- x = 100
9
- y = 100
10
-
11
- begin
12
- pic = Magick::ImageList.new
13
-
14
- lines = Magick::Draw.new
15
- lines.stroke '#600'
16
- lines.fill_opacity 0
17
- lines.line 300, 100, 300, 500
18
- lines.line 100, 300, 500, 300
19
- lines.rectangle 100, 100, 500, 500
20
-
21
- draw = Magick::Draw.new
22
- draw.pointsize = 30
23
- draw.fill = '#600'
24
- draw.undercolor = 'red'
25
-
26
- 0.step(330, 30) do |angle|
27
- puts "angle #{angle}"
28
- pic.new_image(600, 600) { self.background_color = 'white' }
29
-
30
- lines.draw pic
31
-
32
- draw.annotate(pic, 0, 0, x, y, 'NorthWest') do
33
- self.gravity = Magick::NorthWestGravity
34
- self.rotation = angle
35
- end
36
- draw.annotate(pic, 0, 0, 0, y, 'North') do
37
- self.gravity = Magick::NorthGravity
38
- self.rotation = angle
39
- end
40
- draw.annotate(pic, 0, 0, x, y, 'NorthEast') do
41
- self.gravity = Magick::NorthEastGravity
42
- self.rotation = angle
43
- end
44
- draw.annotate(pic, 0, 0, x, 0, 'East') do
45
- self.gravity = Magick::EastGravity
46
- self.rotation = angle
47
- end
48
- draw.annotate(pic, 0, 0, 0, 0, 'Center') do
49
- self.gravity = Magick::CenterGravity
50
- self.rotation = angle
51
- end
52
- draw.annotate(pic, 0, 0, x, y, 'SouthEast') do
53
- self.gravity = Magick::SouthEastGravity
54
- self.rotation = angle
55
- end
56
- draw.annotate(pic, 0, 0, 0, y, 'South') do
57
- self.gravity = Magick::SouthGravity
58
- self.rotation = angle
59
- end
60
- draw.annotate(pic, 0, 0, x, y, 'SouthWest') do
61
- self.gravity = Magick::SouthWestGravity
62
- self.rotation = angle
63
- end
64
- draw.annotate(pic, 0, 0, x, 0, 'West') do
65
- self.gravity = Magick::WestGravity
66
- self.rotation = angle
67
- end
68
- end
69
-
70
- puts 'Writing image "rm_gravity_out.miff"...'
71
- pic.delay = 20
72
- pic.write './rm_gravity_out.miff'
73
- rescue StandardError
74
- puts "#{$ERROR_INFO} exception raised."
75
- exit 1
76
- end
77
-
78
- exit 0
data/doc/ex/group.rb DELETED
@@ -1,26 +0,0 @@
1
- require 'rvg/rvg'
2
-
3
- Magick::RVG.dpi = 90
4
-
5
- rvg = Magick::RVG.new(6.cm, 4.cm).viewbox(0, 0, 600, 400) do |canvas|
6
- canvas.background_fill = 'white'
7
- canvas.rect(595, 395, 1, 1).styles(stroke: 'blue', fill: 'none', stroke_width: 2)
8
-
9
- # Define a stick figure.
10
- stick = Magick::RVG::Group.new.styles(stroke: 'black', fill: 'none', stroke_width: 6) do |fig|
11
- fig.circle(42, 50, 50).styles(stroke: 'red')
12
- fig.polyline(30, 40, 50, 40, 45, 60, 50, 40, 65, 40).styles(stroke_width: 4)
13
- fig.polyline(10, 100, 50, 130, 90, 100)
14
- fig.line(50, 97, 50, 155)
15
- fig.polyline(10, 200, 50, 155, 90, 200)
16
- end
17
-
18
- # Draw 12 copies.
19
- 2.times do |y|
20
- 6.times do |x|
21
- canvas.use(stick, x * 100, y * 200)
22
- end
23
- end
24
- end
25
-
26
- rvg.draw.write('group.gif')
data/doc/ex/hatchfill.rb DELETED
@@ -1,27 +0,0 @@
1
- #!/usr/bin/env ruby -w
2
- require 'rmagick'
3
-
4
- # Demonstrate the HatchFill class
5
-
6
- Cols = 300
7
- Rows = 100
8
-
9
- Background = 'white'
10
- Foreground = 'LightCyan2'
11
-
12
- fill = Magick::HatchFill.new(Background, Foreground)
13
- img = Magick::ImageList.new
14
- img.new_image(Cols, Rows, fill)
15
-
16
- # Annotate the filled image with the code that created the fill.
17
-
18
- ann = Magick::Draw.new
19
- ann.annotate(img, 0, 0, 0, 0, "HatchFill.new('#{Background}', '#{Foreground}')") do
20
- self.gravity = Magick::CenterGravity
21
- self.fill = 'black'
22
- self.stroke = 'transparent'
23
- self.pointsize = 14
24
- end
25
- # img.display
26
- img.write('hatchfill.gif')
27
- exit
data/doc/ex/image.rb DELETED
@@ -1,44 +0,0 @@
1
- require 'rvg/rvg'
2
-
3
- rvg = Magick::RVG.new(525, 270) do |canvas|
4
- canvas.background_fill = 'white'
5
- canvas.rect(524, 269).styles(fill: 'none', stroke: 'blue', stroke_width: 1)
6
-
7
- hat = ::Magick::Image.read('images/Flower_Hat.jpg').first
8
-
9
- canvas.image(hat, 100, 75, 25, 40).preserve_aspect_ratio('none')
10
- canvas.rect(100, 75, 25, 40).styles(fill: 'none', stroke: 'blue')
11
-
12
- canvas.image(hat, 100, 75, 150, 40).preserve_aspect_ratio('xMinYMin', 'meet')
13
- canvas.rect(100, 75, 150, 40).styles(fill: 'none', stroke: 'blue')
14
-
15
- canvas.image(hat, 100, 75, 275, 40).preserve_aspect_ratio('xMidYMid', 'meet')
16
- canvas.rect(100, 75, 275, 40).styles(fill: 'none', stroke: 'blue')
17
-
18
- canvas.image(hat, 100, 75, 400, 40).preserve_aspect_ratio('xMaxYMax', 'meet')
19
- canvas.rect(100, 75, 400, 40).styles(fill: 'none', stroke: 'blue')
20
-
21
- canvas.image(hat, 100, 75, 150, 155).preserve_aspect_ratio('xMinYMin', 'slice')
22
- canvas.rect(100, 75, 150, 155).styles(fill: 'none', stroke: 'blue')
23
-
24
- canvas.image(hat, 100, 75, 275, 155).preserve_aspect_ratio('xMidYMid', 'slice')
25
- canvas.rect(100, 75, 275, 155).styles(fill: 'none', stroke: 'blue')
26
-
27
- canvas.image(hat, 100, 75, 400, 155).preserve_aspect_ratio('xMaxYMax', 'slice')
28
- canvas.rect(100, 75, 400, 155).styles(fill: 'none', stroke: 'blue')
29
-
30
- canvas.line(150, 20, 305, 20)
31
- canvas.line(345, 20, 500, 20)
32
- canvas.line(150, 250, 305, 250)
33
- canvas.line(340, 250, 500, 250)
34
- canvas.g.styles(stroke: 'none', font_weight: 'normal', font_style: 'normal') do |t|
35
- t.text(310, 23, 'meet')
36
- t.text(60, 140, 'none')
37
- t.text(170, 140, 'xMinYMin')
38
- t.text(300, 140, 'xMidYMid')
39
- t.text(425, 140, 'xMaxYMax')
40
- t.text(310, 253, 'slice')
41
- end
42
- end
43
-
44
- rvg.draw.write('image.gif')
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
data/doc/ex/images/No.png DELETED
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
data/doc/ex/implode.rb DELETED
@@ -1,34 +0,0 @@
1
- #!/usr/bin/env ruby -w
2
-
3
- require 'rmagick'
4
-
5
- img = Magick::Image.read('images/Flower_Hat.jpg').first
6
-
7
- legend = Magick::Draw.new
8
- legend.stroke = 'transparent'
9
- legend.fill = 'white'
10
- legend.gravity = Magick::SouthGravity
11
-
12
- frames = Magick::ImageList.new
13
-
14
- implosion = 0.25
15
- 8.times do
16
- frames << img.implode(implosion)
17
- legend.annotate(frames, 0, 0, 10, 20, format('% 4.2f', implosion))
18
- frames.alpha(Magick::DeactivateAlphaChannel)
19
- implosion -= 0.10
20
- end
21
-
22
- 7.times do
23
- implosion += 0.10
24
- frames << img.implode(implosion)
25
- legend.annotate(frames, 0, 0, 10, 20, format('% 4.2f', implosion))
26
- frames.alpha(Magick::DeactivateAlphaChannel)
27
- end
28
-
29
- frames.delay = 10
30
- frames.iterations = 0
31
- puts 'Producing animation...'
32
-
33
- frames.write('implode.gif')
34
- exit
data/doc/ex/level.rb DELETED
@@ -1,11 +0,0 @@
1
- #!/usr/bin/env ruby -w
2
- require 'rmagick'
3
-
4
- # Demonstrate the Image#level method
5
-
6
- before = Magick::Image.read('images/Flower_Hat.jpg').first
7
-
8
- # Brighten up the mid-tones a bit.
9
- after = before.level(0, Magick::QuantumRange, 1.50)
10
- after.write('level.jpg')
11
- exit
@@ -1,11 +0,0 @@
1
- require 'rmagick'
2
-
3
- img = Magick::Image.read('images/Flower_Hat.jpg').first
4
- begin
5
- img = img.level_colors('green', 'orange', true)
6
- img.alpha(Magick::DeactivateAlphaChannel)
7
- rescue NotImplementedError
8
- not_imp = Magick::Image.read('images/notimplemented.gif').first
9
- img = not_imp.resize(img.columns, img.rows)
10
- end
11
- img.write('level_colors.jpg')