rmagick 4.1.0.rc2 → 4.2.1

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of rmagick might be problematic. Click here for more details.

Files changed (414) hide show
  1. checksums.yaml +4 -4
  2. data/.codeclimate.yml +63 -0
  3. data/.editorconfig +3 -0
  4. data/.github/ISSUE_TEMPLATE.md +17 -0
  5. data/.github/workflows/ci.yml +108 -0
  6. data/.gitignore +3 -1
  7. data/.rspec +1 -0
  8. data/.rubocop.yml +24 -0
  9. data/.rubocop_todo.yml +151 -297
  10. data/.yardopts +5 -0
  11. data/CHANGELOG.md +96 -0
  12. data/CODE_OF_CONDUCT.md +122 -7
  13. data/CONTRIBUTING.md +14 -10
  14. data/README.md +324 -0
  15. data/Rakefile +16 -22
  16. data/before_install_linux.sh +22 -32
  17. data/before_install_osx.sh +57 -2
  18. data/ext/RMagick/extconf.rb +108 -95
  19. data/ext/RMagick/rmagick.c +77 -104
  20. data/ext/RMagick/rmagick.h +77 -70
  21. data/ext/RMagick/rmdraw.c +289 -446
  22. data/ext/RMagick/rmenum.c +96 -113
  23. data/ext/RMagick/rmfill.c +49 -77
  24. data/ext/RMagick/rmilist.c +144 -244
  25. data/ext/RMagick/rmimage.c +3407 -4166
  26. data/ext/RMagick/rminfo.c +540 -738
  27. data/ext/RMagick/rmkinfo.c +21 -87
  28. data/ext/RMagick/rmmain.c +419 -246
  29. data/ext/RMagick/rmmontage.c +60 -126
  30. data/ext/RMagick/rmpixel.c +401 -345
  31. data/ext/RMagick/rmstruct.c +62 -88
  32. data/ext/RMagick/rmutil.c +151 -228
  33. data/lib/rmagick/version.rb +1 -1
  34. data/lib/rmagick_internal.rb +128 -77
  35. data/lib/rvg/clippath.rb +2 -1
  36. data/lib/rvg/container.rb +10 -5
  37. data/lib/rvg/describable.rb +1 -1
  38. data/lib/rvg/embellishable.rb +5 -4
  39. data/lib/rvg/misc.rb +15 -12
  40. data/lib/rvg/paint.rb +2 -1
  41. data/lib/rvg/pathdata.rb +12 -11
  42. data/lib/rvg/rvg.rb +8 -4
  43. data/lib/rvg/stylable.rb +9 -7
  44. data/lib/rvg/text.rb +11 -6
  45. data/lib/rvg/transformable.rb +3 -2
  46. data/lib/rvg/units.rb +1 -1
  47. data/rmagick.gemspec +8 -6
  48. metadata +46 -421
  49. data/.appveyor.yml +0 -57
  50. data/.circleci/config.yml +0 -56
  51. data/.ruby-version +0 -1
  52. data/.simplecov +0 -27
  53. data/.travis.yml +0 -64
  54. data/Doxyfile +0 -1514
  55. data/README.textile +0 -259
  56. data/benchmarks/memory/README.md +0 -50
  57. data/benchmarks/memory/image_new.rb +0 -8
  58. data/benchmarks/memory/rmagick.gnuplot +0 -16
  59. data/doc/.cvsignore +0 -1
  60. data/doc/comtasks.html +0 -287
  61. data/doc/constants.html +0 -1581
  62. data/doc/css/doc.css +0 -299
  63. data/doc/css/popup.css +0 -34
  64. data/doc/css/ref.css +0 -67
  65. data/doc/draw.html +0 -3272
  66. data/doc/ex/InitialCoords.rb +0 -22
  67. data/doc/ex/NewCoordSys.rb +0 -30
  68. data/doc/ex/OrigCoordSys.rb +0 -16
  69. data/doc/ex/PreserveAspectRatio.rb +0 -204
  70. data/doc/ex/RotateScale.rb +0 -36
  71. data/doc/ex/Skew.rb +0 -38
  72. data/doc/ex/Use01.rb +0 -15
  73. data/doc/ex/Use02.rb +0 -20
  74. data/doc/ex/Use03.rb +0 -16
  75. data/doc/ex/ViewBox.rb +0 -31
  76. data/doc/ex/adaptive_threshold.rb +0 -9
  77. data/doc/ex/add_noise.rb +0 -16
  78. data/doc/ex/affine.rb +0 -48
  79. data/doc/ex/affine_transform.rb +0 -20
  80. data/doc/ex/arc.rb +0 -49
  81. data/doc/ex/arcpath.rb +0 -32
  82. data/doc/ex/arcs01.rb +0 -28
  83. data/doc/ex/arcs02.rb +0 -59
  84. data/doc/ex/average.rb +0 -15
  85. data/doc/ex/axes.rb +0 -64
  86. data/doc/ex/baseline_shift01.rb +0 -17
  87. data/doc/ex/bilevel_channel.rb +0 -8
  88. data/doc/ex/blur_image.rb +0 -12
  89. data/doc/ex/border.rb +0 -10
  90. data/doc/ex/bounding_box.rb +0 -42
  91. data/doc/ex/cbezier1.rb +0 -41
  92. data/doc/ex/cbezier2.rb +0 -41
  93. data/doc/ex/cbezier3.rb +0 -41
  94. data/doc/ex/cbezier4.rb +0 -42
  95. data/doc/ex/cbezier5.rb +0 -42
  96. data/doc/ex/cbezier6.rb +0 -53
  97. data/doc/ex/channel.rb +0 -25
  98. data/doc/ex/charcoal.rb +0 -12
  99. data/doc/ex/chop.rb +0 -29
  100. data/doc/ex/circle.rb +0 -33
  101. data/doc/ex/circle01.rb +0 -16
  102. data/doc/ex/clip_path.rb +0 -60
  103. data/doc/ex/coalesce.rb +0 -57
  104. data/doc/ex/color_fill_to_border.rb +0 -29
  105. data/doc/ex/color_floodfill.rb +0 -28
  106. data/doc/ex/color_histogram.rb +0 -47
  107. data/doc/ex/color_reset.rb +0 -11
  108. data/doc/ex/colorize.rb +0 -16
  109. data/doc/ex/colors.rb +0 -64
  110. data/doc/ex/compose_mask.rb +0 -22
  111. data/doc/ex/composite.rb +0 -133
  112. data/doc/ex/composite_layers.rb +0 -52
  113. data/doc/ex/composite_tiled.rb +0 -21
  114. data/doc/ex/contrast.rb +0 -36
  115. data/doc/ex/crop.rb +0 -31
  116. data/doc/ex/crop_with_gravity.rb +0 -42
  117. data/doc/ex/cubic01.rb +0 -43
  118. data/doc/ex/cubic02.rb +0 -91
  119. data/doc/ex/cycle_colormap.rb +0 -21
  120. data/doc/ex/dissolve.rb +0 -12
  121. data/doc/ex/drawcomp.rb +0 -41
  122. data/doc/ex/drop_shadow.rb +0 -60
  123. data/doc/ex/edge.rb +0 -11
  124. data/doc/ex/ellipse.rb +0 -45
  125. data/doc/ex/ellipse01.rb +0 -21
  126. data/doc/ex/emboss.rb +0 -11
  127. data/doc/ex/enhance.rb +0 -28
  128. data/doc/ex/equalize.rb +0 -11
  129. data/doc/ex/evenodd.rb +0 -42
  130. data/doc/ex/fill_pattern.rb +0 -23
  131. data/doc/ex/flatten_images.rb +0 -36
  132. data/doc/ex/flip.rb +0 -11
  133. data/doc/ex/flop.rb +0 -11
  134. data/doc/ex/font_styles.rb +0 -32
  135. data/doc/ex/fonts.rb +0 -16
  136. data/doc/ex/frame.rb +0 -12
  137. data/doc/ex/gaussian_blur.rb +0 -11
  138. data/doc/ex/get_multiline_type_metrics.rb +0 -41
  139. data/doc/ex/get_pixels.rb +0 -45
  140. data/doc/ex/get_type_metrics.rb +0 -142
  141. data/doc/ex/gradientfill.rb +0 -27
  142. data/doc/ex/grav.rb +0 -45
  143. data/doc/ex/gravity.rb +0 -78
  144. data/doc/ex/group.rb +0 -26
  145. data/doc/ex/hatchfill.rb +0 -27
  146. data/doc/ex/image.rb +0 -44
  147. data/doc/ex/images/Apple.miff +0 -0
  148. data/doc/ex/images/Ballerina.jpg +0 -0
  149. data/doc/ex/images/Ballerina3.jpg +0 -0
  150. data/doc/ex/images/Button_0.gif +0 -0
  151. data/doc/ex/images/Button_1.gif +0 -0
  152. data/doc/ex/images/Button_2.gif +0 -0
  153. data/doc/ex/images/Button_3.gif +0 -0
  154. data/doc/ex/images/Button_4.gif +0 -0
  155. data/doc/ex/images/Button_5.gif +0 -0
  156. data/doc/ex/images/Button_6.gif +0 -0
  157. data/doc/ex/images/Button_7.gif +0 -0
  158. data/doc/ex/images/Button_8.gif +0 -0
  159. data/doc/ex/images/Button_9.gif +0 -0
  160. data/doc/ex/images/Button_A.gif +0 -0
  161. data/doc/ex/images/Button_B.gif +0 -0
  162. data/doc/ex/images/Button_C.gif +0 -0
  163. data/doc/ex/images/Button_D.gif +0 -0
  164. data/doc/ex/images/Button_E.gif +0 -0
  165. data/doc/ex/images/Button_F.gif +0 -0
  166. data/doc/ex/images/Button_G.gif +0 -0
  167. data/doc/ex/images/Button_H.gif +0 -0
  168. data/doc/ex/images/Button_I.gif +0 -0
  169. data/doc/ex/images/Button_J.gif +0 -0
  170. data/doc/ex/images/Button_K.gif +0 -0
  171. data/doc/ex/images/Button_L.gif +0 -0
  172. data/doc/ex/images/Button_M.gif +0 -0
  173. data/doc/ex/images/Button_N.gif +0 -0
  174. data/doc/ex/images/Button_O.gif +0 -0
  175. data/doc/ex/images/Button_P.gif +0 -0
  176. data/doc/ex/images/Button_Q.gif +0 -0
  177. data/doc/ex/images/Button_R.gif +0 -0
  178. data/doc/ex/images/Button_S.gif +0 -0
  179. data/doc/ex/images/Button_T.gif +0 -0
  180. data/doc/ex/images/Button_U.gif +0 -0
  181. data/doc/ex/images/Button_V.gif +0 -0
  182. data/doc/ex/images/Button_W.gif +0 -0
  183. data/doc/ex/images/Button_X.gif +0 -0
  184. data/doc/ex/images/Button_Y.gif +0 -0
  185. data/doc/ex/images/Button_Z.gif +0 -0
  186. data/doc/ex/images/Cheetah.jpg +0 -0
  187. data/doc/ex/images/Coffee.png +0 -0
  188. data/doc/ex/images/Flower_Hat.jpg +0 -0
  189. data/doc/ex/images/Gold_Statue.jpg +0 -0
  190. data/doc/ex/images/Hot_Air_Balloons.jpg +0 -0
  191. data/doc/ex/images/Hot_Air_Balloons_H.jpg +0 -0
  192. data/doc/ex/images/Leaf.miff +0 -0
  193. data/doc/ex/images/No.png +0 -0
  194. data/doc/ex/images/Polynesia.jpg +0 -0
  195. data/doc/ex/images/Red_Rocks.jpg +0 -0
  196. data/doc/ex/images/Rocks_On_Beach.miff +0 -0
  197. data/doc/ex/images/Shorts.jpg +0 -0
  198. data/doc/ex/images/Snake.png +0 -0
  199. data/doc/ex/images/Violin.jpg +0 -0
  200. data/doc/ex/images/Yellow_Rose.miff +0 -0
  201. data/doc/ex/images/big-duck.gif +0 -0
  202. data/doc/ex/images/duck.gif +0 -0
  203. data/doc/ex/images/duck0.gif +0 -0
  204. data/doc/ex/images/duck1.gif +0 -0
  205. data/doc/ex/images/duck10.gif +0 -0
  206. data/doc/ex/images/duck11.gif +0 -0
  207. data/doc/ex/images/duck12.gif +0 -0
  208. data/doc/ex/images/duck13.gif +0 -0
  209. data/doc/ex/images/duck14.gif +0 -0
  210. data/doc/ex/images/duck15.gif +0 -0
  211. data/doc/ex/images/duck2.gif +0 -0
  212. data/doc/ex/images/duck3.gif +0 -0
  213. data/doc/ex/images/duck4.gif +0 -0
  214. data/doc/ex/images/duck5.gif +0 -0
  215. data/doc/ex/images/duck6.gif +0 -0
  216. data/doc/ex/images/duck7.gif +0 -0
  217. data/doc/ex/images/duck8.gif +0 -0
  218. data/doc/ex/images/duck9.gif +0 -0
  219. data/doc/ex/images/graydient230x6.gif +0 -0
  220. data/doc/ex/images/image_with_profile.jpg +0 -0
  221. data/doc/ex/images/logo400x83.gif +0 -0
  222. data/doc/ex/images/model.miff +0 -0
  223. data/doc/ex/images/notimplemented.gif +0 -0
  224. data/doc/ex/images/smile.miff +0 -0
  225. data/doc/ex/images/spin.gif +0 -0
  226. data/doc/ex/implode.rb +0 -34
  227. data/doc/ex/level.rb +0 -11
  228. data/doc/ex/level_colors.rb +0 -11
  229. data/doc/ex/line.rb +0 -41
  230. data/doc/ex/line01.rb +0 -21
  231. data/doc/ex/mask.rb +0 -35
  232. data/doc/ex/matte_fill_to_border.rb +0 -39
  233. data/doc/ex/matte_floodfill.rb +0 -32
  234. data/doc/ex/matte_replace.rb +0 -39
  235. data/doc/ex/median_filter.rb +0 -28
  236. data/doc/ex/modulate.rb +0 -11
  237. data/doc/ex/mono.rb +0 -23
  238. data/doc/ex/morph.rb +0 -25
  239. data/doc/ex/mosaic.rb +0 -37
  240. data/doc/ex/motion_blur.rb +0 -11
  241. data/doc/ex/negate.rb +0 -11
  242. data/doc/ex/negate_channel.rb +0 -9
  243. data/doc/ex/nested_rvg.rb +0 -21
  244. data/doc/ex/nonzero.rb +0 -42
  245. data/doc/ex/normalize.rb +0 -11
  246. data/doc/ex/oil_paint.rb +0 -11
  247. data/doc/ex/opacity.rb +0 -37
  248. data/doc/ex/ordered_dither.rb +0 -11
  249. data/doc/ex/path.rb +0 -63
  250. data/doc/ex/pattern1.rb +0 -25
  251. data/doc/ex/pattern2.rb +0 -26
  252. data/doc/ex/polaroid.rb +0 -26
  253. data/doc/ex/polygon.rb +0 -23
  254. data/doc/ex/polygon01.rb +0 -21
  255. data/doc/ex/polyline.rb +0 -22
  256. data/doc/ex/polyline01.rb +0 -21
  257. data/doc/ex/posterize.rb +0 -8
  258. data/doc/ex/preview.rb +0 -8
  259. data/doc/ex/qbezierpath.rb +0 -52
  260. data/doc/ex/quad01.rb +0 -34
  261. data/doc/ex/quantize-m.rb +0 -25
  262. data/doc/ex/radial_blur.rb +0 -9
  263. data/doc/ex/raise.rb +0 -8
  264. data/doc/ex/random_threshold_channel.rb +0 -13
  265. data/doc/ex/rect01.rb +0 -14
  266. data/doc/ex/rect02.rb +0 -20
  267. data/doc/ex/rectangle.rb +0 -34
  268. data/doc/ex/reduce_noise.rb +0 -28
  269. data/doc/ex/remap.rb +0 -11
  270. data/doc/ex/remap_images.rb +0 -19
  271. data/doc/ex/resize_to_fill.rb +0 -8
  272. data/doc/ex/resize_to_fit.rb +0 -8
  273. data/doc/ex/roll.rb +0 -9
  274. data/doc/ex/rotate.rb +0 -44
  275. data/doc/ex/rotate_f.rb +0 -14
  276. data/doc/ex/roundrect.rb +0 -33
  277. data/doc/ex/rubyname.rb +0 -30
  278. data/doc/ex/rvg_clippath.rb +0 -12
  279. data/doc/ex/rvg_linecap.rb +0 -42
  280. data/doc/ex/rvg_linejoin.rb +0 -40
  281. data/doc/ex/rvg_opacity.rb +0 -18
  282. data/doc/ex/rvg_pattern.rb +0 -26
  283. data/doc/ex/rvg_stroke_dasharray.rb +0 -11
  284. data/doc/ex/segment.rb +0 -11
  285. data/doc/ex/sepiatone.rb +0 -7
  286. data/doc/ex/shade.rb +0 -11
  287. data/doc/ex/shadow.rb +0 -30
  288. data/doc/ex/shave.rb +0 -15
  289. data/doc/ex/shear.rb +0 -10
  290. data/doc/ex/sketch.rb +0 -17
  291. data/doc/ex/skewx.rb +0 -51
  292. data/doc/ex/skewy.rb +0 -47
  293. data/doc/ex/smile.rb +0 -126
  294. data/doc/ex/solarize.rb +0 -11
  295. data/doc/ex/sparse_color.rb +0 -55
  296. data/doc/ex/splice.rb +0 -8
  297. data/doc/ex/spread.rb +0 -11
  298. data/doc/ex/stegano.rb +0 -54
  299. data/doc/ex/stroke_dasharray.rb +0 -42
  300. data/doc/ex/stroke_fill.rb +0 -10
  301. data/doc/ex/stroke_linecap.rb +0 -44
  302. data/doc/ex/stroke_linejoin.rb +0 -48
  303. data/doc/ex/stroke_width.rb +0 -49
  304. data/doc/ex/swirl.rb +0 -17
  305. data/doc/ex/text.rb +0 -37
  306. data/doc/ex/text01.rb +0 -16
  307. data/doc/ex/text_align.rb +0 -36
  308. data/doc/ex/text_antialias.rb +0 -37
  309. data/doc/ex/text_styles.rb +0 -19
  310. data/doc/ex/text_undercolor.rb +0 -28
  311. data/doc/ex/texture_fill_to_border.rb +0 -34
  312. data/doc/ex/texture_floodfill.rb +0 -32
  313. data/doc/ex/texturefill.rb +0 -24
  314. data/doc/ex/threshold.rb +0 -13
  315. data/doc/ex/to_blob.rb +0 -13
  316. data/doc/ex/translate.rb +0 -39
  317. data/doc/ex/transparent.rb +0 -38
  318. data/doc/ex/transpose.rb +0 -9
  319. data/doc/ex/transverse.rb +0 -9
  320. data/doc/ex/tref01.rb +0 -24
  321. data/doc/ex/triangle01.rb +0 -15
  322. data/doc/ex/trim.rb +0 -23
  323. data/doc/ex/tspan01.rb +0 -17
  324. data/doc/ex/tspan02.rb +0 -17
  325. data/doc/ex/tspan03.rb +0 -19
  326. data/doc/ex/unsharp_mask.rb +0 -28
  327. data/doc/ex/viewex.rb +0 -33
  328. data/doc/ex/vignette.rb +0 -12
  329. data/doc/ex/watermark.rb +0 -27
  330. data/doc/ex/wave.rb +0 -9
  331. data/doc/ex/wet_floor.rb +0 -58
  332. data/doc/ex/writing_mode01.rb +0 -26
  333. data/doc/ex/writing_mode02.rb +0 -26
  334. data/doc/ilist.html +0 -2056
  335. data/doc/image1.html +0 -4680
  336. data/doc/image2.html +0 -3665
  337. data/doc/image3.html +0 -4522
  338. data/doc/imageattrs.html +0 -1638
  339. data/doc/imusage.html +0 -514
  340. data/doc/index.html +0 -416
  341. data/doc/info.html +0 -1499
  342. data/doc/magick.html +0 -570
  343. data/doc/optequiv.html +0 -2435
  344. data/doc/rvg.html +0 -975
  345. data/doc/rvgclip.html +0 -248
  346. data/doc/rvggroup.html +0 -305
  347. data/doc/rvgimage.html +0 -289
  348. data/doc/rvgpattern.html +0 -475
  349. data/doc/rvgshape.html +0 -406
  350. data/doc/rvgstyle.html +0 -270
  351. data/doc/rvgtext.html +0 -465
  352. data/doc/rvgtspan.html +0 -238
  353. data/doc/rvgtut.html +0 -530
  354. data/doc/rvguse.html +0 -145
  355. data/doc/rvgxform.html +0 -294
  356. data/doc/scripts/doc.js +0 -22
  357. data/doc/scripts/stripeTables.js +0 -23
  358. data/doc/struct.html +0 -1339
  359. data/doc/usage.html +0 -1621
  360. data/examples/constitute.rb +0 -7
  361. data/examples/crop_with_gravity.rb +0 -43
  362. data/examples/demo.rb +0 -323
  363. data/examples/describe.rb +0 -41
  364. data/examples/find_similar_region.rb +0 -34
  365. data/examples/histogram.rb +0 -312
  366. data/examples/identify.rb +0 -174
  367. data/examples/image_opacity.rb +0 -28
  368. data/examples/import_export.rb +0 -31
  369. data/examples/pattern_fill.rb +0 -37
  370. data/examples/rotating_text.rb +0 -45
  371. data/examples/spinner.rb +0 -49
  372. data/examples/thumbnail.rb +0 -64
  373. data/examples/vignette.rb +0 -78
  374. data/spec/rmagick/ImageList1_spec.rb +0 -24
  375. data/spec/rmagick/draw_spec.rb +0 -155
  376. data/spec/rmagick/image/blue_shift_spec.rb +0 -14
  377. data/spec/rmagick/image/channel_entropy_spec.rb +0 -9
  378. data/spec/rmagick/image/composite_spec.rb +0 -72
  379. data/spec/rmagick/image/constitute_spec.rb +0 -13
  380. data/spec/rmagick/image/dispatch_spec.rb +0 -16
  381. data/spec/rmagick/image/dissolve_spec.rb +0 -54
  382. data/spec/rmagick/image/from_blob_spec.rb +0 -12
  383. data/spec/rmagick/image/ping_spec.rb +0 -12
  384. data/spec/rmagick/image/properties_spec.rb +0 -27
  385. data/spec/rmagick/image/read_spec.rb +0 -28
  386. data/spec/spec_helper.rb +0 -9
  387. data/spec/support/issue_200/app.rb +0 -8
  388. data/test/Draw.rb +0 -351
  389. data/test/Enum.rb +0 -228
  390. data/test/Fill.rb +0 -93
  391. data/test/Image1.rb +0 -606
  392. data/test/Image2.rb +0 -1408
  393. data/test/Image3.rb +0 -1086
  394. data/test/ImageList1.rb +0 -858
  395. data/test/ImageList2.rb +0 -375
  396. data/test/Image_attributes.rb +0 -635
  397. data/test/Import_Export.rb +0 -111
  398. data/test/Info.rb +0 -436
  399. data/test/KernelInfo.rb +0 -59
  400. data/test/Magick.rb +0 -311
  401. data/test/Pixel.rb +0 -259
  402. data/test/PolaroidOptions.rb +0 -23
  403. data/test/Preview.rb +0 -26
  404. data/test/Struct.rb +0 -45
  405. data/test/appearance/Montage.rb +0 -26
  406. data/test/appearance/appearance_assertion.rb +0 -13
  407. data/test/appearance/expected/montage_border_color.jpg +0 -0
  408. data/test/cmyk.icm +0 -0
  409. data/test/lib/internal/Draw.rb +0 -811
  410. data/test/lib/internal/Geometry.rb +0 -98
  411. data/test/lib/internal/Magick.rb +0 -40
  412. data/test/srgb.icm +0 -0
  413. data/test/test_all_basic.rb +0 -49
  414. data/test/tmpnam_test.rb +0 -50
data/doc/ex/enhance.rb DELETED
@@ -1,28 +0,0 @@
1
- #!/usr/bin/env ruby -w
2
- require 'rmagick'
3
-
4
- # Demonstrate the Image#enhance method
5
-
6
- img = Magick::Image.read('images/Flower_Hat.jpg').first
7
- img = img.add_noise(Magick::UniformNoise)
8
-
9
- eimg = img.enhance
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!(Magick::EastGravity, 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('enhance.jpg')
28
- exit
data/doc/ex/equalize.rb DELETED
@@ -1,11 +0,0 @@
1
- #!/usr/bin/env ruby -w
2
- require 'rmagick'
3
-
4
- # Demonstrate the Image#equalize method
5
-
6
- img = Magick::Image.read('images/Flower_Hat.jpg').first
7
-
8
- img = img.equalize
9
-
10
- img.write('equalize.jpg')
11
- exit
data/doc/ex/evenodd.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(clip_rule: 'evenodd', 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('evenodd.gif')
@@ -1,23 +0,0 @@
1
- #!/usr/bin/env ruby -w
2
- require 'rmagick'
3
-
4
- # Demonstrate the Magick::Draw#fill_pattern and #stroke_pattern attributes.
5
-
6
- temp = Magick::ImageList.new
7
- temp << Magick::Image.new(5, 10) { self.background_color = 'black' }
8
- temp << Magick::Image.new(5, 10) { self.background_color = 'gold' }
9
- stroke_pattern = temp.append(false)
10
-
11
- img = Magick::Image.new(280, 250) { self.background_color = 'none' }
12
-
13
- gc = Magick::Draw.new
14
- gc.annotate(img, 0, 0, 0, 0, "PATT\nERNS") do
15
- self.gravity = Magick::CenterGravity
16
- self.font_weight = Magick::BoldWeight
17
- self.pointsize = 100
18
- self.fill_pattern = Magick::Image.read('images/Flower_Hat.jpg').first
19
- self.stroke_width = 5
20
- self.stroke_pattern = stroke_pattern
21
- end
22
-
23
- img.write('fill_pattern.gif')
@@ -1,36 +0,0 @@
1
- #!/usr/bin/env ruby -w
2
-
3
- # Demonstrate flatten_images method. Create an image with a drop-shadow effect.
4
-
5
- require 'rmagick'
6
-
7
- RMagick = 'RMagick'
8
-
9
- i = Magick::ImageList.new
10
-
11
- # Create a background image with a gradient fill
12
- i.new_image(200, 100, Magick::GradientFill.new(100, 50, 100, 50, 'khaki1', 'turquoise'))
13
-
14
- # Create a transparent image for the text shadow
15
- i.new_image(200, 100) { self.background_color = 'transparent' }
16
- primitives = Magick::Draw.new
17
- primitives.annotate i, 0, 0, 2, 2, RMagick do
18
- self.pointsize = 32
19
- self.fill = 'gray50'
20
- self.gravity = Magick::CenterGravity
21
- end
22
-
23
- # Create another transparent image for the text itself
24
- i.new_image(200, 100) { self.background_color = 'transparent' }
25
- primitives = Magick::Draw.new
26
- primitives.annotate i, 0, 0, -2, -2, RMagick do
27
- self.pointsize = 32
28
- self.fill = 'red'
29
- self.stroke = 'black'
30
- self.gravity = Magick::CenterGravity
31
- end
32
-
33
- # Flatten all 3 into a single image.
34
- # i.display
35
- i.flatten_images.write 'flatten_images.gif'
36
- exit
data/doc/ex/flip.rb DELETED
@@ -1,11 +0,0 @@
1
- #!/usr/bin/env ruby -w
2
- require 'rmagick'
3
-
4
- # Demonstrate the Image#flip method
5
-
6
- img = Magick::Image.read('images/Flower_Hat.jpg').first
7
-
8
- img.flip!
9
-
10
- img.write('flip.jpg')
11
- exit
data/doc/ex/flop.rb DELETED
@@ -1,11 +0,0 @@
1
- #!/usr/bin/env ruby -w
2
- require 'rmagick'
3
-
4
- # Demonstrate the Image#flop method
5
-
6
- img = Magick::Image.read('images/Flower_Hat.jpg').first
7
-
8
- img.flop!
9
-
10
- img.write('flop.jpg')
11
- exit
@@ -1,32 +0,0 @@
1
- #!/usr/bin/env ruby -w
2
- require 'rvg/rvg'
3
-
4
- rvg = Magick::RVG.new(200, 250) do |canvas|
5
- canvas.background_fill = 'white'
6
-
7
- canvas.g do |grp|
8
- grp.g.styles(font_weight: 'normal', font_style: 'normal') do |grp2|
9
- grp2.text(10, 30, 'default size')
10
- grp2.text(10, 50, ':font_size=>14').styles(font_size: 14)
11
- grp2.text(10, 70, ':font_size=>16').styles(font_size: 16)
12
- grp2.text(10, 100, ':font_size=>24').styles(font_size: 24)
13
- end
14
- end
15
-
16
- canvas.g.styles(font_size: 14, font_weight: 'normal', font_style: 'normal') do |grp|
17
- if RUBY_PLATFORM =~ /mswin32/
18
- grp.text(8, 120, ":font_family=>'Courier-New'").styles(font_family: 'Courier-New')
19
- else
20
- grp.text(8, 120, ":font_family=>'Courier'").styles(font_family: 'Courier')
21
- end
22
- grp.text(10, 140, ":font_weight=>'bold'").styles(font_weight: 'bold')
23
- grp.text(10, 160, ":font_stretch=>'normal'").styles(font_stretch: 'normal')
24
- grp.text(10, 180, ":font_stretch=>'condensed'").styles(font_stretch: 'condensed')
25
- grp.text(10, 200, ":font_style=>'italic'").styles(font_style: 'italic')
26
- grp.text(10, 220, ':font_weight=>900').styles(font_weight: 900)
27
- end
28
-
29
- canvas.rect(199, 249).styles(fill: 'none', stroke: 'blue')
30
- end
31
-
32
- rvg.draw.write('font_styles.gif')
data/doc/ex/fonts.rb DELETED
@@ -1,16 +0,0 @@
1
- #!/usr/bin/env ruby -w
2
- require 'rmagick'
3
-
4
- # Compute column widths
5
- name_length = 0
6
- family_length = 0
7
- Magick.fonts do |font|
8
- name_length = font.name.length if font.name.length > name_length
9
- family_length = font.family.length if font.family.length > family_length
10
- end
11
-
12
- # Print all fonts
13
- Magick.fonts do |font|
14
- printf("%-*s %-*s %d %s\t%s\n", name_length, font.name,
15
- family_length, font.family, font.weight, font.style, font.stretch)
16
- end
data/doc/ex/frame.rb DELETED
@@ -1,12 +0,0 @@
1
- #!/usr/bin/env ruby -w
2
- require 'rmagick'
3
-
4
- # Demonstrate the Image#frame method
5
-
6
- img = Magick::Image.read('images/Flower_Hat.jpg').first
7
-
8
- img.matte_color = 'gray75'
9
- img = img.frame
10
-
11
- img.write('frame.jpg')
12
- exit
@@ -1,11 +0,0 @@
1
- #!/usr/bin/env ruby -w
2
- require 'rmagick'
3
-
4
- # Demonstrate the Image#gaussian_blur method
5
-
6
- img = Magick::Image.read('images/Flower_Hat.jpg').first
7
-
8
- img = img.gaussian_blur(0.0, 3.0)
9
-
10
- img.write('gaussian_blur.jpg')
11
- exit
@@ -1,41 +0,0 @@
1
- #!/usr/bin/env ruby -w
2
- require 'rmagick'
3
-
4
- TEXT = 'get\nmultiline\ntype\nmetrics'
5
-
6
- background = Magick::Image.new(200, 200)
7
- gc = Magick::Draw.new
8
-
9
- # Draw the text centered on the background
10
- gc.annotate(background, 0, 0, 0, 0, TEXT) do
11
- gc.font_family = 'Verdana'
12
- gc.pointsize = 36
13
- gc.gravity = Magick::CenterGravity
14
- gc.stroke = 'none'
15
- end
16
-
17
- # Get the metrics
18
- metrics = gc.get_multiline_type_metrics(background, TEXT)
19
-
20
- # Compute the corners for a rectangle surrounding the text
21
- x = (background.columns - metrics.width) / 2
22
- y = (background.rows - metrics.height) / 2
23
-
24
- # Draw 2 rectangles over the text.
25
- gc = Magick::Draw.new
26
- gc.stroke('red')
27
- gc.stroke_width(5)
28
- gc.stroke_linejoin('round')
29
- gc.fill('cyan')
30
- gc.fill_opacity(0.10)
31
- gc.rectangle(x, y, x + metrics.width, y + metrics.height)
32
-
33
- gc.stroke('white')
34
- gc.stroke_width(1)
35
- gc.fill('none')
36
- gc.rectangle(x, y, x + metrics.width, y + metrics.height)
37
- gc.draw(background)
38
-
39
- background.border!(1, 1, 'blue')
40
-
41
- background.write('get_multiline_type_metrics.gif')
data/doc/ex/get_pixels.rb DELETED
@@ -1,45 +0,0 @@
1
- #!/usr/bin/env ruby -w
2
- require 'rmagick'
3
-
4
- # Demonstrate partial transparency and the get_pixels and
5
- # store_pixels methods by creating an image that goes from
6
- # full-color on the left to monochrome on the right.
7
-
8
- # Read the colorful picture of a rock formation. Scale
9
- # it to 300 pixels high because we don't want a big picture.
10
- rocks = Magick::Image.read('images/Red_Rocks.jpg').first
11
- rocks.scale!(250.0 / rocks.rows)
12
-
13
- # Make a monochrome copy. See Image#quantize for details
14
- grayrocks = rocks.quantize(256, Magick::GRAYColorspace)
15
-
16
- rows = grayrocks.rows
17
- cols = grayrocks.columns
18
-
19
- # Create an array of opacity values, proceeding from
20
- # transparent to opaque. The array should have as many
21
- # elements as there are columns in the image. The first
22
- # element should be TransparentOpacity and each succeeding
23
- # element slightly more opaque than its predecessor.
24
- step = Magick::TransparentOpacity / cols.to_f
25
- opacity_steps = Array.new(cols)
26
- cols.times do |x|
27
- opacity_steps[x] = Magick::TransparentOpacity - Integer(x * step)
28
- opacity_steps[x] = Magick::OpaqueOpacity if opacity_steps[x] < Magick::OpaqueOpacity
29
- end
30
-
31
- # Get each row of pixels from the mono image.
32
- # Copy the pre-computed opacity values to the pixels.
33
- # Store the pixels back.
34
- rows.times do |y|
35
- pixels = grayrocks.get_pixels(0, y, cols, 1)
36
- pixels.each_with_index { |p, x| p.opacity = opacity_steps[x] }
37
- grayrocks.store_pixels(0, y, cols, 1, pixels)
38
- end
39
-
40
- # Composite the mono version of the image over the color version.
41
- grayrocks.alpha(Magick::ActivateAlphaChannel)
42
- combine = rocks.composite(grayrocks, Magick::CenterGravity, Magick::OverCompositeOp)
43
- # combine.display
44
- combine.write 'get_pixels.jpg'
45
- exit
@@ -1,142 +0,0 @@
1
- #!/usr/bin/env ruby -w
2
- require 'rmagick'
3
-
4
- # Add a method for drawing braces.
5
- module Magick
6
- class Draw
7
- # (w,h) - width & height of rectangle enclosing brace.
8
- # Normally the brace is drawn with its opening to the
9
- # left and its lower point on the origin.
10
- #
11
- # Set w < 0 to draw right-opening brace. Set h < 0 to
12
- # position top point at origin.
13
- #
14
- # The placement & orientation is affected by the
15
- # current user coordinate system.
16
- def brace(w, h)
17
- raise(ArgumentError, 'width must be != 0') unless w != 0
18
- raise(ArgumentError, 'height must be != 0') unless h != 0
19
-
20
- path("M0,0 Q#{w},0 #{w / 2.0},#{-h / 4.0} T#{w},#{-h / 2.0}" \
21
- "Q0,#{-h / 2.0} #{w / 2.0},#{-(3.0 * h / 4.0)} T0,#{-h}")
22
- end
23
- end
24
- end
25
-
26
- Origin_x = 110
27
- Origin_y = 230
28
- Glyph = 'g'
29
- Face = RUBY_PLATFORM =~ /mswin/ ? 'Verdana' : 'Times'
30
-
31
- canvas = Magick::Image.new(410, 320, Magick::HatchFill.new('white', 'lightcyan2'))
32
-
33
- # Draw a big lowercase 'g' on the canvas. Leave room on all sides for
34
- # the labels. Use 'undercolor' to set off the glyph.
35
- glyph = Magick::Draw.new
36
- glyph.annotate(canvas, 0, 0, Origin_x, Origin_y, Glyph) do
37
- glyph.pointsize = 124
38
- glyph.stroke = 'none'
39
- glyph.fill = 'black'
40
- glyph.font_family = Face
41
- glyph.undercolor = '#ffff00c0'
42
- end
43
-
44
- # Call get_type_metrics. This is what this example's all about.
45
- metrics = glyph.get_type_metrics(canvas, Glyph)
46
-
47
- gc = Magick::Draw.new
48
- gc.translate(Origin_x, Origin_y)
49
-
50
- # Draw the origin as a big red dot.
51
- gc.stroke('red')
52
- gc.fill('red')
53
- gc.circle(0, 0, 0, 2)
54
-
55
- # All our lines will be medium-gray, dashed, and thin.
56
- gc.stroke('gray50')
57
- gc.stroke_dasharray(5, 2)
58
- gc.stroke_width(1)
59
- gc.fill('none')
60
-
61
- # baseline
62
- gc.line(-10, 0, metrics.width + 20, 0)
63
-
64
- # a vertical line through the origin
65
- gc.line(0, -metrics.descent - metrics.height - 10, 0, -metrics.descent + 15)
66
-
67
- # descent
68
- gc.line(-10, -metrics.descent, metrics.width + 20, -metrics.descent)
69
-
70
- # ascent
71
- gc.line(-10, -metrics.ascent, metrics.width + 20, -metrics.ascent)
72
-
73
- # height
74
- gc.line(-10, -metrics.descent - metrics.height,
75
- metrics.width + 10, -metrics.descent - metrics.height)
76
-
77
- # width
78
- gc.line(metrics.width, -metrics.descent - metrics.height - 10,
79
- metrics.width, -metrics.descent + 20)
80
-
81
- # max_advance
82
- gc.line(metrics.max_advance, -10, metrics.max_advance, -metrics.descent + 20)
83
-
84
- gc.draw(canvas)
85
-
86
- # Draw the braces and labels. Position the braces by transforming the
87
- # user coordinate system with translate and rotate methods.
88
- gc = Magick::Draw.new
89
- gc.font_family('Face')
90
- gc.pointsize(13)
91
- gc.fill('none')
92
- gc.stroke('black')
93
- gc.stroke_width(1)
94
- gc.translate(Origin_x, Origin_y)
95
-
96
- # between origin and descent
97
- gc.push
98
- gc.translate(metrics.width + 23, 0)
99
- gc.brace(10, metrics.descent)
100
- gc.pop
101
-
102
- # between origin and ascent
103
- gc.push
104
- gc.translate(metrics.width + 23, 0)
105
- gc.brace(10, metrics.ascent)
106
- gc.pop
107
-
108
- # between origin and height
109
- gc.push
110
- gc.translate(-13, -metrics.descent - metrics.height)
111
- gc.rotate(180)
112
- gc.brace(10, metrics.height)
113
- gc.pop
114
-
115
- # between origin and width
116
- gc.push
117
- gc.translate(metrics.width, -metrics.descent - metrics.height - 10 - 3)
118
- gc.rotate(-90)
119
- gc.brace(10, metrics.width)
120
- gc.pop
121
-
122
- # between origin and max_advance
123
- gc.push
124
- gc.translate(0, -metrics.descent + 15)
125
- gc.rotate(90)
126
- gc.brace(10, metrics.max_advance)
127
- gc.pop
128
-
129
- # Add labels
130
- gc.font_weight(Magick::NormalWeight)
131
- gc.font_style(Magick::NormalStyle)
132
- gc.stroke('none')
133
- gc.fill('black')
134
- gc.text(metrics.width + 40, -(metrics.ascent / 2) + 4, 'ascent')
135
- gc.text(metrics.width + 40, -(metrics.descent / 2) + 4, 'descent')
136
- gc.text(-60, -metrics.descent - metrics.height / 2 + 4, 'height')
137
- gc.text((metrics.width / 2) - 15, -metrics.descent - metrics.height - 25, 'width')
138
- gc.text(metrics.max_advance / 2 - 38, -metrics.descent + 35, 'max_advance')
139
-
140
- gc.draw(canvas)
141
- canvas.border!(1, 1, 'blue')
142
- canvas.write('get_type_metrics.gif')