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