rmagick 2.16.0 → 5.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (404) hide show
  1. checksums.yaml +5 -5
  2. data/.devcontainer/Dockerfile +14 -0
  3. data/.devcontainer/ImageMagick6/devcontainer.json +11 -0
  4. data/.devcontainer/devcontainer.json +11 -0
  5. data/.devcontainer/setup-repo.sh +10 -0
  6. data/.devcontainer/setup-user.sh +45 -0
  7. data/.editorconfig +3 -0
  8. data/.github/ISSUE_TEMPLATE.md +17 -0
  9. data/.github/workflows/ci.yml +138 -0
  10. data/.gitignore +7 -1
  11. data/.rspec +1 -0
  12. data/.rubocop.yml +37 -340
  13. data/.rubocop_todo.yml +448 -0
  14. data/.yardopts +5 -0
  15. data/CHANGELOG.md +455 -0
  16. data/CODE_OF_CONDUCT.md +122 -7
  17. data/CONTRIBUTING.md +37 -6
  18. data/Gemfile +0 -6
  19. data/README.md +316 -0
  20. data/Rakefile +74 -100
  21. data/before_install_linux.sh +65 -28
  22. data/before_install_osx.sh +58 -2
  23. data/ext/RMagick/extconf.rb +287 -393
  24. data/ext/RMagick/rmagick.c +106 -111
  25. data/ext/RMagick/rmagick.h +235 -331
  26. data/ext/RMagick/rmagick_gvl.h +224 -0
  27. data/ext/RMagick/rmdraw.c +516 -843
  28. data/ext/RMagick/rmenum.c +316 -755
  29. data/ext/RMagick/rmfill.c +281 -191
  30. data/ext/RMagick/rmilist.c +451 -456
  31. data/ext/RMagick/rmimage.c +6250 -5290
  32. data/ext/RMagick/rminfo.c +721 -894
  33. data/ext/RMagick/rmkinfo.c +228 -0
  34. data/ext/RMagick/rmmain.c +735 -521
  35. data/ext/RMagick/rmmontage.c +127 -172
  36. data/ext/RMagick/rmpixel.c +638 -431
  37. data/ext/RMagick/rmstruct.c +102 -282
  38. data/ext/RMagick/rmutil.c +450 -363
  39. data/lib/rmagick/version.rb +5 -4
  40. data/lib/rmagick.rb +2 -0
  41. data/lib/rmagick_internal.rb +349 -413
  42. data/lib/rvg/clippath.rb +3 -4
  43. data/lib/rvg/container.rb +30 -22
  44. data/lib/rvg/deep_equal.rb +11 -11
  45. data/lib/rvg/describable.rb +2 -2
  46. data/lib/rvg/embellishable.rb +63 -68
  47. data/lib/rvg/misc.rb +136 -139
  48. data/lib/rvg/paint.rb +2 -1
  49. data/lib/rvg/pathdata.rb +7 -8
  50. data/lib/rvg/rvg.rb +47 -46
  51. data/lib/rvg/stretchable.rb +22 -28
  52. data/lib/rvg/stylable.rb +12 -10
  53. data/lib/rvg/text.rb +169 -165
  54. data/lib/rvg/transformable.rb +17 -16
  55. data/lib/rvg/units.rb +5 -5
  56. data/rmagick.gemspec +16 -39
  57. metadata +114 -392
  58. data/.hound.yml +0 -2
  59. data/.simplecov +0 -27
  60. data/.travis.yml +0 -74
  61. data/Doxyfile +0 -1514
  62. data/README.textile +0 -251
  63. data/deprecated/RMagick.rb +0 -6
  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 -53
  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 -42
  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 -20
  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 -47
  145. data/doc/ex/get_type_metrics.rb +0 -141
  146. data/doc/ex/gradientfill.rb +0 -27
  147. data/doc/ex/grav.rb +0 -45
  148. data/doc/ex/gravity.rb +0 -80
  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.wmf +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.wmf +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.wmf +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 -35
  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 -27
  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 -125
  299. data/doc/ex/solarize.rb +0 -11
  300. data/doc/ex/sparse_color.rb +0 -54
  301. data/doc/ex/splice.rb +0 -8
  302. data/doc/ex/spread.rb +0 -11
  303. data/doc/ex/stegano.rb +0 -55
  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 -565
  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 -324
  368. data/examples/describe.rb +0 -43
  369. data/examples/find_similar_region.rb +0 -34
  370. data/examples/histogram.rb +0 -321
  371. data/examples/identify.rb +0 -185
  372. data/examples/image_opacity.rb +0 -29
  373. data/examples/import_export.rb +0 -31
  374. data/examples/pattern_fill.rb +0 -38
  375. data/examples/rotating_text.rb +0 -44
  376. data/examples/spinner.rb +0 -49
  377. data/examples/thumbnail.rb +0 -64
  378. data/examples/vignette.rb +0 -78
  379. data/spec/rmagick/ImageList1_spec.rb +0 -24
  380. data/spec/rmagick/draw_spec.rb +0 -156
  381. data/spec/rmagick/image/blue_shift_spec.rb +0 -16
  382. data/spec/rmagick/image/composite_spec.rb +0 -140
  383. data/spec/rmagick/image/constitute_spec.rb +0 -15
  384. data/spec/rmagick/image/dispatch_spec.rb +0 -18
  385. data/spec/rmagick/image/from_blob_spec.rb +0 -14
  386. data/spec/rmagick/image/ping_spec.rb +0 -14
  387. data/spec/rmagick/image/properties_spec.rb +0 -29
  388. data/spec/spec_helper.rb +0 -4
  389. data/test/Image1.rb +0 -565
  390. data/test/Image2.rb +0 -1304
  391. data/test/Image3.rb +0 -1030
  392. data/test/ImageList1.rb +0 -806
  393. data/test/ImageList2.rb +0 -385
  394. data/test/Image_attributes.rb +0 -697
  395. data/test/Import_Export.rb +0 -121
  396. data/test/Info.rb +0 -345
  397. data/test/Magick.rb +0 -321
  398. data/test/Pixel.rb +0 -116
  399. data/test/Preview.rb +0 -57
  400. data/test/cmyk.icm +0 -0
  401. data/test/srgb.icm +0 -0
  402. data/test/test_all_basic.rb +0 -38
  403. data/test/tmpnam_test.rb +0 -50
  404. 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')