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
data/doc/ex/line.rb DELETED
@@ -1,41 +0,0 @@
1
- #!/usr/bin/env ruby -w
2
- require 'rmagick'
3
-
4
- imgl = Magick::ImageList.new
5
- imgl.new_image(250, 250, Magick::HatchFill.new('white', 'LightCyan2'))
6
-
7
- gc = Magick::Draw.new
8
-
9
- gc.stroke_linejoin('round')
10
-
11
- # Draw 3 lines in 3 colors.
12
- # Make each line 2 pixels wide.
13
- gc.stroke('red')
14
- gc.stroke_width(3)
15
- gc.line(50, 50, 50, 200)
16
- gc.stroke('blue')
17
- gc.line(50, 200, 200, 200)
18
- gc.stroke('green')
19
- gc.line(200, 200, 50, 50)
20
-
21
- # Identify the endpoints with gray circles
22
- gc.stroke('gray50')
23
- gc.stroke_width(1)
24
- gc.fill_opacity(0)
25
- gc.circle(50, 50, 53, 53)
26
- gc.circle(50, 200, 53, 203)
27
- gc.circle(200, 200, 203, 203)
28
-
29
- # Annotate the endpoints
30
- gc.font_weight(Magick::NormalWeight)
31
- gc.font_style(Magick::NormalStyle)
32
- gc.fill('black')
33
- gc.stroke('transparent')
34
- gc.text(30, 40, "'50,50'")
35
- gc.text(30, 220, "'50,200'")
36
- gc.text(180, 220, "'200,200'")
37
-
38
- gc.draw(imgl)
39
- imgl.border!(1, 1, 'LightCyan2')
40
-
41
- imgl.write('line.gif')
data/doc/ex/line01.rb DELETED
@@ -1,21 +0,0 @@
1
- require 'rvg/rvg'
2
-
3
- Magick::RVG.dpi = 90
4
-
5
- rvg = Magick::RVG.new(12.cm, 4.cm).viewbox(0, 0, 1200, 400) do |canvas|
6
- canvas.background_fill = 'white'
7
- canvas.desc = 'Example line01 - lines expressed in user coordinates'
8
-
9
- # Show outline of canvas using the 'rect' method
10
- canvas.rect(1195, 395, 1, 1).styles(fill: 'none', stroke: 'blue', stroke_width: 2)
11
-
12
- canvas.g.styles(stroke: 'green') do |grp|
13
- grp.line(100, 300, 300, 100).styles(stroke_width: 5)
14
- grp.line(300, 300, 500, 100).styles(stroke_width: 10)
15
- grp.line(500, 300, 700, 100).styles(stroke_width: 15)
16
- grp.line(700, 300, 900, 100).styles(stroke_width: 20)
17
- grp.line(900, 300, 1100, 100).styles(stroke_width: 25)
18
- end
19
- end
20
-
21
- rvg.draw.write('line01.gif')
data/doc/ex/mask.rb DELETED
@@ -1,35 +0,0 @@
1
- #!/usr/bin/env ruby -w
2
-
3
- require 'rmagick'
4
-
5
- # This example demonstrates the mask attribute. The mask image must
6
- # be the same size as the image being masked. Since this mask image does
7
- # not have an alpha channel, the intensity of each pixel is used to define the
8
- # mask. White pixels are more intense than black pixels, so the area of the
9
- # image masked by white pixels will remain unchanged, while the area of the
10
- # image masked by black pixels is affected by any transformations.
11
-
12
- # In this example the mask is simply the words "Flower Hat" in black text
13
- # positioned near the bottom of the white clip mask image.
14
-
15
- img = Magick::Image.read('images/Flower_Hat.jpg').first
16
- q = Magick::Image.new(img.columns, img.rows)
17
-
18
- gc = Magick::Draw.new
19
- gc.annotate(q, 0, 0, 0, 0, 'Flower Hat') do
20
- gc.gravity = Magick::SouthGravity
21
- gc.pointsize = 36
22
- gc.font_weight = Magick::BoldWeight
23
- end
24
-
25
- # Set the matte attribute to false, indicating the absence of an alpha channel
26
- # in the mask image. Assign the mask image to the mask= attribute of the image
27
- # being masked.
28
-
29
- q.alpha(Magick::DeactivateAlphaChannel)
30
- img.mask q
31
-
32
- # Use the #level method to darken the image under the black part of the mask.
33
-
34
- img = img.level(0, Magick::QuantumRange, 0.50)
35
- img.write('mask.jpg')
@@ -1,39 +0,0 @@
1
- #!/usr/bin/env ruby -w
2
-
3
- require 'rmagick'
4
-
5
- img = Magick::Image.new(200, 200)
6
- img.compression = Magick::LZWCompression
7
-
8
- bg = Magick::Image.read('plasma:fractal') { self.size = '200x200' }
9
- bg[0].alpha(Magick::DeactivateAlphaChannel)
10
-
11
- gc = Magick::Draw.new
12
- gc.stroke_width(2)
13
- gc.stroke('black')
14
- gc.fill('white')
15
- gc.roundrectangle(0, 0, 199, 199, 8, 8)
16
-
17
- gc.fill('black')
18
- gc.circle(100, 45, 100, 25)
19
- gc.circle(45, 100, 25, 100)
20
- gc.circle(100, 155, 100, 175)
21
- gc.circle(155, 100, 175, 100)
22
-
23
- gc.draw(img)
24
-
25
- img.write('matte_fill_to_border_before.gif')
26
-
27
- # Set the border color. Set the fuzz attribute so that
28
- # the matte fill will fill the aliased pixels around
29
- # the edges of the black circles.
30
- img.border_color = 'black'
31
- img.fuzz = 10
32
- img = img.matte_fill_to_border(100, 100)
33
-
34
- # Composite the image over a nice bright background
35
- # so that the transparent pixels will be obvious.
36
- img = bg[0].composite(img, Magick::CenterGravity, Magick::OverCompositeOp)
37
-
38
- img.write('matte_fill_to_border_after.gif')
39
- exit
@@ -1,32 +0,0 @@
1
- #!/usr/bin/env ruby -w
2
-
3
- require 'rmagick'
4
-
5
- img = Magick::Image.new(200, 200)
6
- img.compression = Magick::LZWCompression
7
-
8
- bg = Magick::Image.read('plasma:fractal') { self.size = '200x200' }
9
- bg[0].alpha(Magick::DeactivateAlphaChannel)
10
-
11
- gc = Magick::Draw.new
12
- gc.stroke_width(2)
13
- gc.stroke('black')
14
- gc.fill('white')
15
- gc.roundrectangle(0, 0, 199, 199, 8, 8)
16
-
17
- gc.fill('yellow')
18
- gc.stroke('red')
19
- gc.circle(100, 100, 100, 25)
20
- gc.draw(img)
21
-
22
- img.write('matte_floodfill_before.gif')
23
-
24
- img.fuzz = 100
25
- img = img.matte_floodfill(100, 100)
26
-
27
- # Composite the image over a nice bright background
28
- # so that the transparent pixels will be obvious.
29
- img = bg[0].composite(img, Magick::CenterGravity, Magick::OverCompositeOp)
30
-
31
- img.write('matte_floodfill_after.gif')
32
- exit
@@ -1,39 +0,0 @@
1
- #!/usr/bin/env ruby -w
2
-
3
- require 'rmagick'
4
-
5
- img = Magick::Image.new(200, 200)
6
- img.compression = Magick::LZWCompression
7
-
8
- bg = Magick::Image.read('plasma:fractal') { self.size = '200x200' }
9
- bg[0].alpha(Magick::DeactivateAlphaChannel)
10
-
11
- gc = Magick::Draw.new
12
- gc.stroke_width(2)
13
- gc.stroke('black')
14
- gc.fill('white')
15
- gc.roundrectangle(0, 0, 199, 199, 8, 8)
16
-
17
- gc.fill('black')
18
- gc.circle(100, 45, 100, 25)
19
- gc.circle(45, 100, 25, 100)
20
- gc.circle(100, 155, 100, 175)
21
- gc.circle(155, 100, 175, 100)
22
-
23
- gc.draw(img)
24
-
25
- img.write('matte_replace_before.gif')
26
-
27
- # Set the border color. Set the fuzz attribute so that
28
- # the matte fill will fill the aliased pixels around
29
- # the edges of the black circles.
30
- img.border_color = 'black'
31
- img.fuzz = 10
32
- img = img.matte_replace(100, 45)
33
-
34
- # Composite the image over a nice bright background
35
- # so that the transparent pixels will be obvious.
36
- img = bg[0].composite(img, Magick::CenterGravity, Magick::OverCompositeOp)
37
-
38
- img.write('matte_replace_after.gif')
39
- exit
@@ -1,28 +0,0 @@
1
- #!/usr/bin/env ruby -w
2
- require 'rmagick'
3
-
4
- # Demonstrate the Image#median_filter method
5
-
6
- img = Magick::Image.read('images/Flower_Hat.jpg').first
7
- img = img.add_noise(Magick::UniformNoise)
8
-
9
- eimg = img.median_filter(0.05)
10
-
11
- # Zoom in so we can see the change
12
- img.resize!(3)
13
- eimg.resize!(3)
14
-
15
- # Make a before-and-after composite
16
- eimg.crop!(eimg.columns / 2, 0, eimg.columns / 2, eimg.rows)
17
- img = img.composite(eimg, Magick::EastGravity, Magick::OverCompositeOp)
18
-
19
- # Draw a black line between the before and after parts.
20
- line = Magick::Draw.new
21
- line.line(img.columns / 2, 0, img.columns / 2, img.rows)
22
- line.draw(img)
23
-
24
- # Crop everything but the face.
25
- img.crop!(Magick::CenterGravity, 250, 200)
26
-
27
- img.write('median_filter.jpg')
28
- exit
data/doc/ex/modulate.rb DELETED
@@ -1,11 +0,0 @@
1
- #!/usr/bin/env ruby -w
2
- require 'rmagick'
3
-
4
- # Demonstrate the Image#modulate method
5
-
6
- img = Magick::Image.read('images/Flower_Hat.jpg').first
7
-
8
- img = img.modulate(0.85)
9
-
10
- img.write('modulate.jpg')
11
- exit
data/doc/ex/mono.rb DELETED
@@ -1,23 +0,0 @@
1
- #!/usr/bin/env ruby -w
2
- require 'rmagick'
3
-
4
- # Demonstrate the ImageListImage#quantize method by converting
5
- # a color image into a monochrome image.
6
-
7
- # Read the large color cheetah image and scale it to a third
8
- # of its size.
9
- cheetah = Magick::Image.read('images/Cheetah.jpg').first
10
- cheetah.scale!(0.33)
11
-
12
- # Quantize the cheetah image into 256 colors in the GRAY colorspace.
13
- mono_cheetah = cheetah.quantize 256, Magick::GRAYColorspace
14
-
15
- # Cut the top off the monochrome cheetah image.
16
- mono_bottom = mono_cheetah.crop 0, mono_cheetah.rows / 2, mono_cheetah.columns, mono_cheetah.rows / 2
17
-
18
- # Composite the half-height mono cheetah onto the bottom of
19
- # the original color cheetah.
20
- before_after = cheetah.composite mono_bottom, 0, cheetah.rows / 2, Magick::OverCompositeOp
21
-
22
- before_after.write 'mono.jpg'
23
- exit
data/doc/ex/morph.rb DELETED
@@ -1,25 +0,0 @@
1
- #!/usr/bin/env ruby -w
2
-
3
- require 'rmagick'
4
-
5
- # Demonstrate the morph method
6
-
7
- # Read 4 digit image files. Create an
8
- # animated morph sequence by inserting 8
9
- # in-between images between each pair of digits.
10
-
11
- i = Magick::ImageList.new
12
- number = '0'
13
- 4.times do
14
- i.read 'images/Button_' + number + '.gif'
15
- number.succ!
16
- end
17
-
18
- puts 'This may take a few seconds...'
19
- morph = i.morph 8
20
- morph.delay = 12
21
- morph.iterations = 10_000
22
- # Display the resulting sequence as an animation.
23
- # morph.animate(12)
24
- morph.write 'morph.gif'
25
- exit
data/doc/ex/mosaic.rb DELETED
@@ -1,37 +0,0 @@
1
- #!/usr/bin/env ruby -w
2
- require 'rmagick'
3
-
4
- # Demonstrate the mosaic method
5
-
6
- a = Magick::ImageList.new
7
-
8
- letter = 'A'
9
- 26.times do
10
- # 'M' is not the same size as the other letters.
11
- a.read('images/Button_' + letter + '.gif') if letter != 'M'
12
- letter.succ!
13
- end
14
-
15
- # Make a copy of "a" with all the images quarter-sized
16
- b = Magick::ImageList.new
17
- page = Magick::Rectangle.new(0, 0, 0, 0)
18
- a.scene = 0
19
- 5.times do |i|
20
- 5.times do |j|
21
- b << a.scale(0.25)
22
- page.x = j * b.columns
23
- page.y = i * b.rows
24
- b.page = page
25
- begin
26
- (a.scene += 1)
27
- rescue StandardError
28
- a.scene = 0
29
- end
30
- end
31
- end
32
-
33
- # Make a 5x5 mosaic
34
- mosaic = b.mosaic
35
- mosaic.write('mosaic.gif')
36
- # mosaic.display
37
- exit
@@ -1,11 +0,0 @@
1
- #!/usr/bin/env ruby -w
2
- require 'rmagick'
3
-
4
- # Demonstrate the Image#blur_image method
5
-
6
- img = Magick::Image.read('images/Flower_Hat.jpg').first
7
-
8
- img = img.motion_blur(0, 7, 180)
9
-
10
- img.write('motion_blur.jpg')
11
- exit
data/doc/ex/negate.rb DELETED
@@ -1,11 +0,0 @@
1
- #!/usr/bin/env ruby -w
2
- require 'rmagick'
3
-
4
- # Demonstrate the Image#negate method
5
-
6
- img = Magick::Image.read('images/Flower_Hat.jpg').first
7
-
8
- img = img.negate
9
-
10
- img.write('negate.jpg')
11
- exit
@@ -1,9 +0,0 @@
1
- #!/usr/bin/env ruby -w
2
- require 'rmagick'
3
-
4
- # Demonstrate the Image#negate_channel method
5
-
6
- img = Magick::Image.read('images/Flower_Hat.jpg').first
7
- result = img.negate_channel(false, Magick::GreenChannel)
8
- result.write('negate_channel.jpg')
9
- exit
data/doc/ex/nested_rvg.rb DELETED
@@ -1,21 +0,0 @@
1
- #!/usr/bin/env ruby -w
2
-
3
- require 'rvg/rvg'
4
-
5
- target = Magick::RVG.new.viewbox(0, 0, 200, 200) do |targ|
6
- targ.g.styles(stroke_width: 20, stroke: '#ff5600', fill: '#abd600') do |grp|
7
- grp.circle(90, 100, 100)
8
- grp.circle(60, 100, 100)
9
- grp.circle(30, 100, 100)
10
- end
11
- end
12
-
13
- rvg = Magick::RVG.new(258, 100) do |canvas|
14
- canvas.background_fill = '#51396b'
15
- canvas.use(target, 0, 0, 100, 100)
16
- canvas.use(target, 100, 16.6667, 66.7, 66.7)
17
- canvas.use(target, 166.6667, 25, 50, 50)
18
- canvas.use(target, 216.6667, 30, 40, 40)
19
- end
20
-
21
- rvg.draw.write('nested_rvg.gif')
data/doc/ex/nonzero.rb DELETED
@@ -1,42 +0,0 @@
1
- #!/usr/bin/env ruby -w
2
- require 'rvg/rvg'
3
-
4
- Magick::RVG.dpi = 90
5
-
6
- rvg = Magick::RVG.new(12.cm, 4.cm).viewbox(0, 0, 1200, 400) do |canvas|
7
- canvas.background_fill = 'white'
8
- canvas.desc = "Example fillrule - nonzero - demonstrates fill_rule=>'nonzero'"
9
-
10
- canvas.rect(1195, 393, 1, 1).styles(fill: 'none', stroke: 'blue')
11
-
12
- triangle = Magick::RVG::Group.new do |defs|
13
- defs.path('M 16,0 L -8,9 v-18 z').styles(fill: 'black', stroke: 'none')
14
- end
15
-
16
- canvas.g.styles(fill_rule: 'nonzero', fill: 'red', stroke: 'black', stroke_width: 3) do |grp|
17
- grp.path('M 250,75 L 323,301 131,161 369,161 177,301 z')
18
- grp.use(triangle).translate(306.21, 249).rotate(72)
19
- grp.use(triangle).translate(175.16, 193.2).rotate(216)
20
- grp.use(triangle).translate(314.26, 161).rotate(0)
21
- grp.use(triangle).translate(221.16, 268.8).rotate(144)
22
- grp.use(triangle).translate(233.21, 126.98).rotate(288)
23
- grp.path('M 600,81 A 107,107 0 0,1 600,295 A 107,107 0 0,1 600,81 z' \
24
- 'M 600,139 A 49,49 0 0,1 600,237 A 49,49 0 0,1 600,139 z')
25
- grp.use(triangle).translate(600, 188).rotate(0).translate(107, 0).rotate(90)
26
- grp.use(triangle).translate(600, 188).rotate(120).translate(107, 0).rotate(90)
27
- grp.use(triangle).translate(600, 188).rotate(240).translate(107, 0).rotate(90)
28
- grp.use(triangle).translate(600, 188).rotate(60).translate(49, 0).rotate(90)
29
- grp.use(triangle).translate(600, 188).rotate(180).translate(49, 0).rotate(90)
30
- grp.use(triangle).translate(600, 188).rotate(300).translate(49, 0).rotate(90)
31
- grp.path('M 950,81 A 107,107 0 0,1 950,295 A 107,107 0 0,1 950,81 z' \
32
- 'M 950,139 A 49,49 0 0,0 950,237 A 49,49 0 0,0 950,139 z')
33
- grp.use(triangle).translate(950, 188).rotate(0).translate(107, 0).rotate(90)
34
- grp.use(triangle).translate(950, 188).rotate(120).translate(107, 0).rotate(90)
35
- grp.use(triangle).translate(950, 188).rotate(240).translate(107, 0).rotate(90)
36
- grp.use(triangle).translate(950, 188).rotate(60).translate(49, 0).rotate(-90)
37
- grp.use(triangle).translate(950, 188).rotate(180).translate(49, 0).rotate(-90)
38
- grp.use(triangle).translate(950, 188).rotate(300).translate(49, 0).rotate(-90)
39
- end
40
- end
41
-
42
- rvg.draw.write('nonzero.gif')
data/doc/ex/normalize.rb DELETED
@@ -1,11 +0,0 @@
1
- #!/usr/bin/env ruby -w
2
- require 'rmagick'
3
-
4
- # Demonstrate the Image#normalize method
5
-
6
- img = Magick::Image.read('images/Hot_Air_Balloons.jpg').first
7
-
8
- img = img.normalize
9
-
10
- img.write('normalize.jpg')
11
- exit
data/doc/ex/oil_paint.rb DELETED
@@ -1,11 +0,0 @@
1
- #!/usr/bin/env ruby -w
2
- require 'rmagick'
3
-
4
- # Demonstrate the Image#oil_paint method
5
-
6
- img = Magick::Image.read('images/Flower_Hat.jpg').first
7
-
8
- img = img.oil_paint
9
-
10
- img.write('oil_paint.jpg')
11
- exit
data/doc/ex/opacity.rb DELETED
@@ -1,37 +0,0 @@
1
- #!/usr/bin/env ruby -w
2
- require 'rmagick'
3
-
4
- canvas = Magick::Image.new(260, 125)
5
- gc = Magick::Draw.new
6
- gc.fill('black')
7
- gc.rectangle(10, 20, 250, 90)
8
-
9
- gc.stroke('blue')
10
- gc.fill('yellow')
11
- gc.stroke_width(10)
12
-
13
- gc.opacity('25%')
14
- gc.roundrectangle(20, 20, 60, 90, 5, 5)
15
-
16
- gc.opacity('50%')
17
- gc.roundrectangle(80, 20, 120, 90, 5, 5)
18
-
19
- gc.opacity(0.75)
20
- gc.roundrectangle(140, 20, 180, 90, 5, 5)
21
-
22
- gc.opacity(1)
23
- gc.roundrectangle(200, 20, 240, 90, 5, 5)
24
-
25
- gc.font_weight(Magick::NormalWeight)
26
- gc.font_style(Magick::NormalStyle)
27
- gc.stroke('transparent')
28
- gc.fill('black')
29
- gc.gravity(Magick::SouthGravity)
30
- gc.text(-90, 15, '"25%"')
31
- gc.text(-30, 15, '"50%"')
32
- gc.text(30, 15, '"75%"')
33
- gc.text(90, 15, '"100%"')
34
-
35
- gc.draw(canvas)
36
- canvas.write('opacity.png')
37
- exit
@@ -1,11 +0,0 @@
1
- #!/usr/bin/env ruby -w
2
- require 'rmagick'
3
-
4
- # Demonstrate the Image#ordered_dither method
5
-
6
- img = Magick::Image.read('images/Flower_Hat.jpg').first
7
-
8
- img = img.ordered_dither
9
-
10
- img.write('ordered_dither.jpg')
11
- exit
data/doc/ex/path.rb DELETED
@@ -1,63 +0,0 @@
1
- #!/usr/bin/env ruby -w
2
- require 'rmagick'
3
-
4
- imgl = Magick::ImageList.new
5
- imgl.new_image(390, 240, Magick::HatchFill.new('white', 'lightcyan2'))
6
-
7
- gc = Magick::Draw.new
8
-
9
- # Draw path
10
- gc.fill_opacity 0
11
- gc.stroke 'red'
12
- gc.stroke_width 3
13
- gc.path 'M20,120 C20,20 170,20 170,120 S320,220 320,120'
14
-
15
- # Annotate
16
- # Show end points
17
- gc.fill_opacity 0
18
- gc.stroke 'gray50'
19
- gc.stroke_width 1
20
- gc.circle 20, 120, 23, 123
21
- gc.circle 170, 120, 173, 123
22
- gc.circle 320, 120, 323, 123
23
-
24
- # Show control points
25
- gc.fill_opacity 1
26
- gc.circle 20, 20, 23, 23
27
- gc.circle 170, 20, 173, 23
28
- gc.circle 320, 220, 323, 223
29
-
30
- # Show connector lines
31
- gc.line 20, 120, 20, 20
32
- gc.line 170, 20, 170, 220
33
- gc.line 320, 220, 320, 120
34
-
35
- # Show auto control point
36
- gc.fill_opacity 0
37
- gc.stroke 'blue'
38
- gc.stroke_width 3
39
- gc.circle 170, 220, 173, 223
40
-
41
- # Add labels
42
- gc.font_weight Magick::NormalWeight
43
- gc.font_style Magick::NormalStyle
44
- gc.stroke 'none' # unset stroke color
45
- gc.fill 'black'
46
-
47
- # Add end point labels
48
- gc.text 30, 125, "'20,120'"
49
- gc.text 180, 125, "'170,120'"
50
- gc.text 330, 125, "'320,120'"
51
-
52
- # Add control point labels
53
- gc.text 30, 25, "'20,20'"
54
- gc.text 180, 25, "'170,20'"
55
- gc.text 330, 225, "'320,220'"
56
-
57
- # Add auto control point label
58
- gc.text 180, 225, "'auto ctl point'"
59
-
60
- gc.draw imgl
61
-
62
- imgl.border!(1, 1, 'lightcyan2')
63
- imgl.write 'path.gif'
data/doc/ex/pattern1.rb DELETED
@@ -1,25 +0,0 @@
1
- #!/usr/bin/env ruby -w
2
-
3
- require 'rmagick'
4
-
5
- gc = Magick::Draw.new
6
- gc.pattern('triangles', 0, 0, 16, 16) do
7
- gc.fill('darkblue')
8
- gc.rectangle(0, 0, 16, 16)
9
- gc.fill('yellow')
10
- gc.stroke('red')
11
- gc.polygon(0, 0, 8, 16, 16, 0, 0, 0)
12
- end
13
-
14
- gc.stroke('triangles')
15
- gc.stroke_width(16)
16
- gc.fill('none')
17
- gc.ellipse(150, 75, 130, 60, 0, 360)
18
-
19
- img = Magick::Image.new(300, 150, Magick::HatchFill.new('white', 'lightcyan2', 8))
20
- gc.draw(img)
21
-
22
- img.border!(1, 1, 'lightcyan2')
23
-
24
- img.write('pattern1.gif')
25
- exit
data/doc/ex/pattern2.rb DELETED
@@ -1,26 +0,0 @@
1
- #!/usr/bin/env ruby -w
2
-
3
- require 'rmagick'
4
-
5
- hat = Magick::Image.read('images/Flower_Hat.jpg').first
6
- hat.resize!(0.25)
7
-
8
- # Construct a pattern using the hat image
9
- gc = Magick::Draw.new
10
- gc.pattern('hat', 0, 0, hat.columns, hat.rows) do
11
- gc.composite(0, 0, 0, 0, hat)
12
- end
13
-
14
- # Set the fill to the hat "pattern." Draw an ellipse
15
- gc.fill('hat')
16
- gc.ellipse(150, 75, 140, 70, 0, 360)
17
-
18
- # Create a canvas to draw on
19
- img = Magick::Image.new(300, 150, Magick::HatchFill.new('white', 'lightcyan2', 8))
20
-
21
- # Draw the ellipse using the fill
22
- gc.draw(img)
23
-
24
- img.border!(1, 1, 'lightcyan2')
25
- img.write('pattern2.gif')
26
- exit
data/doc/ex/polaroid.rb DELETED
@@ -1,26 +0,0 @@
1
- #!/usr/bin/env ruby -w
2
- require 'rmagick'
3
- require 'date'
4
-
5
- # Demonstrate the Image#polaroid method
6
-
7
- img = Magick::Image.read('images/Flower_Hat.jpg').first
8
- img[:Caption] = "\nLosha\n" + Date.today.to_s
9
-
10
- begin
11
- picture = img.polaroid do
12
- self.font_weight = Magick::NormalWeight
13
- self.font_style = Magick::NormalStyle
14
- self.gravity = Magick::CenterGravity
15
- self.border_color = '#f0f0f8'
16
- end
17
-
18
- # Composite it on a white background so the result is opaque.
19
- background = Magick::Image.new(picture.columns, picture.rows)
20
- result = background.composite(picture, Magick::CenterGravity, Magick::OverCompositeOp)
21
- rescue NotImplementedError
22
- result = Magick::Image.read('images/notimplemented.gif').first
23
- result.resize!(img.columns, img.rows)
24
- end
25
-
26
- result.write('polaroid.jpg')