rmagick 2.13.2 → 4.2.2

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 (380) hide show
  1. checksums.yaml +7 -0
  2. data/.codeclimate.yml +63 -0
  3. data/.editorconfig +17 -0
  4. data/.github/ISSUE_TEMPLATE.md +17 -0
  5. data/.github/workflows/ci.yml +107 -0
  6. data/.gitignore +25 -0
  7. data/.rspec +2 -0
  8. data/.rubocop.yml +37 -0
  9. data/.rubocop_todo.yml +449 -0
  10. data/.yardopts +5 -0
  11. data/CHANGELOG.md +1277 -0
  12. data/CODE_OF_CONDUCT.md +128 -0
  13. data/CONTRIBUTING.md +81 -0
  14. data/Gemfile +4 -0
  15. data/LICENSE +20 -0
  16. data/README.md +324 -0
  17. data/Rakefile +190 -0
  18. data/before_install_linux.sh +69 -0
  19. data/before_install_osx.sh +57 -0
  20. data/deprecated/RMagick.rb +6 -0
  21. data/ext/RMagick/extconf.rb +334 -333
  22. data/ext/RMagick/rmagick.c +129 -127
  23. data/ext/RMagick/rmagick.h +221 -320
  24. data/ext/RMagick/rmdraw.c +458 -767
  25. data/ext/RMagick/rmenum.c +305 -752
  26. data/ext/RMagick/rmfill.c +231 -199
  27. data/ext/RMagick/rmilist.c +437 -478
  28. data/ext/RMagick/rmimage.c +6130 -5342
  29. data/ext/RMagick/rminfo.c +695 -833
  30. data/ext/RMagick/rmkinfo.c +198 -0
  31. data/ext/RMagick/rmmain.c +752 -506
  32. data/ext/RMagick/rmmontage.c +94 -152
  33. data/ext/RMagick/rmpixel.c +619 -425
  34. data/ext/RMagick/rmstruct.c +206 -309
  35. data/ext/RMagick/rmutil.c +514 -344
  36. data/lib/rmagick/version.rb +5 -0
  37. data/lib/rmagick.rb +1 -0
  38. data/lib/rmagick_internal.rb +1922 -0
  39. data/lib/rvg/clippath.rb +35 -39
  40. data/lib/rvg/container.rb +123 -124
  41. data/lib/rvg/deep_equal.rb +45 -49
  42. data/lib/rvg/describable.rb +41 -47
  43. data/lib/rvg/embellishable.rb +380 -411
  44. data/lib/rvg/misc.rb +691 -711
  45. data/lib/rvg/paint.rb +43 -47
  46. data/lib/rvg/pathdata.rb +119 -125
  47. data/lib/rvg/rvg.rb +214 -213
  48. data/lib/rvg/stretchable.rb +153 -162
  49. data/lib/rvg/stylable.rb +111 -117
  50. data/lib/rvg/text.rb +169 -180
  51. data/lib/rvg/transformable.rb +121 -127
  52. data/lib/rvg/units.rb +58 -61
  53. data/rmagick.gemspec +36 -16
  54. metadata +188 -365
  55. data/ChangeLog +0 -773
  56. data/Doxyfile +0 -1514
  57. data/README-Mac-OSX.txt +0 -1
  58. data/README.html +0 -10
  59. data/build_tarball.rake +0 -215
  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 -3269
  66. data/doc/ex/InitialCoords.rb +0 -23
  67. data/doc/ex/NewCoordSys.rb +0 -32
  68. data/doc/ex/OrigCoordSys.rb +0 -18
  69. data/doc/ex/PreserveAspectRatio.rb +0 -205
  70. data/doc/ex/RotateScale.rb +0 -37
  71. data/doc/ex/Skew.rb +0 -38
  72. data/doc/ex/Use01.rb +0 -16
  73. data/doc/ex/Use02.rb +0 -21
  74. data/doc/ex/Use03.rb +0 -16
  75. data/doc/ex/ViewBox.rb +0 -33
  76. data/doc/ex/adaptive_threshold.rb +0 -10
  77. data/doc/ex/add_noise.rb +0 -17
  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 -33
  82. data/doc/ex/arcs01.rb +0 -28
  83. data/doc/ex/arcs02.rb +0 -61
  84. data/doc/ex/average.rb +0 -15
  85. data/doc/ex/axes.rb +0 -64
  86. data/doc/ex/baseline_shift01.rb +0 -18
  87. data/doc/ex/bilevel_channel.rb +0 -9
  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 -44
  91. data/doc/ex/cbezier1.rb +0 -42
  92. data/doc/ex/cbezier2.rb +0 -42
  93. data/doc/ex/cbezier3.rb +0 -42
  94. data/doc/ex/cbezier4.rb +0 -43
  95. data/doc/ex/cbezier5.rb +0 -43
  96. data/doc/ex/cbezier6.rb +0 -53
  97. data/doc/ex/channel.rb +0 -26
  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 -17
  102. data/doc/ex/clip_path.rb +0 -60
  103. data/doc/ex/coalesce.rb +0 -60
  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 -48
  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 -23
  111. data/doc/ex/composite.rb +0 -135
  112. data/doc/ex/composite_layers.rb +0 -53
  113. data/doc/ex/composite_tiled.rb +0 -23
  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 -46
  117. data/doc/ex/cubic01.rb +0 -45
  118. data/doc/ex/cubic02.rb +0 -94
  119. data/doc/ex/cycle_colormap.rb +0 -21
  120. data/doc/ex/dissolve.rb +0 -13
  121. data/doc/ex/drawcomp.rb +0 -42
  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 -22
  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 -43
  130. data/doc/ex/fill_pattern.rb +0 -26
  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 -34
  135. data/doc/ex/fonts.rb +0 -20
  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 -42
  139. data/doc/ex/get_pixels.rb +0 -48
  140. data/doc/ex/get_type_metrics.rb +0 -146
  141. data/doc/ex/gradientfill.rb +0 -27
  142. data/doc/ex/grav.rb +0 -46
  143. data/doc/ex/gravity.rb +0 -79
  144. data/doc/ex/group.rb +0 -26
  145. data/doc/ex/hatchfill.rb +0 -27
  146. data/doc/ex/image.rb +0 -46
  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.wmf +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.wmf +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.wmf +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/logo400x83.gif +0 -0
  221. data/doc/ex/images/model.miff +0 -0
  222. data/doc/ex/images/notimplemented.gif +0 -0
  223. data/doc/ex/images/smile.miff +0 -0
  224. data/doc/ex/images/spin.gif +0 -0
  225. data/doc/ex/implode.rb +0 -34
  226. data/doc/ex/level.rb +0 -11
  227. data/doc/ex/level_colors.rb +0 -11
  228. data/doc/ex/line.rb +0 -42
  229. data/doc/ex/line01.rb +0 -23
  230. data/doc/ex/mask.rb +0 -36
  231. data/doc/ex/matte_fill_to_border.rb +0 -40
  232. data/doc/ex/matte_floodfill.rb +0 -33
  233. data/doc/ex/matte_replace.rb +0 -40
  234. data/doc/ex/median_filter.rb +0 -28
  235. data/doc/ex/modulate.rb +0 -11
  236. data/doc/ex/mono.rb +0 -23
  237. data/doc/ex/morph.rb +0 -26
  238. data/doc/ex/mosaic.rb +0 -35
  239. data/doc/ex/motion_blur.rb +0 -11
  240. data/doc/ex/negate.rb +0 -11
  241. data/doc/ex/negate_channel.rb +0 -9
  242. data/doc/ex/nested_rvg.rb +0 -21
  243. data/doc/ex/nonzero.rb +0 -43
  244. data/doc/ex/normalize.rb +0 -11
  245. data/doc/ex/oil_paint.rb +0 -11
  246. data/doc/ex/opacity.rb +0 -37
  247. data/doc/ex/ordered_dither.rb +0 -11
  248. data/doc/ex/path.rb +0 -64
  249. data/doc/ex/pattern1.rb +0 -25
  250. data/doc/ex/pattern2.rb +0 -26
  251. data/doc/ex/polaroid.rb +0 -28
  252. data/doc/ex/polygon.rb +0 -24
  253. data/doc/ex/polygon01.rb +0 -23
  254. data/doc/ex/polyline.rb +0 -23
  255. data/doc/ex/polyline01.rb +0 -23
  256. data/doc/ex/posterize.rb +0 -8
  257. data/doc/ex/preview.rb +0 -9
  258. data/doc/ex/qbezierpath.rb +0 -52
  259. data/doc/ex/quad01.rb +0 -36
  260. data/doc/ex/quantize-m.rb +0 -25
  261. data/doc/ex/radial_blur.rb +0 -9
  262. data/doc/ex/raise.rb +0 -8
  263. data/doc/ex/random_threshold_channel.rb +0 -13
  264. data/doc/ex/rect01.rb +0 -15
  265. data/doc/ex/rect02.rb +0 -22
  266. data/doc/ex/rectangle.rb +0 -35
  267. data/doc/ex/reduce_noise.rb +0 -28
  268. data/doc/ex/remap.rb +0 -12
  269. data/doc/ex/remap_images.rb +0 -21
  270. data/doc/ex/resize_to_fill.rb +0 -10
  271. data/doc/ex/resize_to_fit.rb +0 -10
  272. data/doc/ex/roll.rb +0 -9
  273. data/doc/ex/rotate.rb +0 -45
  274. data/doc/ex/rotate_f.rb +0 -14
  275. data/doc/ex/roundrect.rb +0 -34
  276. data/doc/ex/rubyname.rb +0 -30
  277. data/doc/ex/rvg_clippath.rb +0 -14
  278. data/doc/ex/rvg_linecap.rb +0 -43
  279. data/doc/ex/rvg_linejoin.rb +0 -41
  280. data/doc/ex/rvg_opacity.rb +0 -19
  281. data/doc/ex/rvg_pattern.rb +0 -26
  282. data/doc/ex/rvg_stroke_dasharray.rb +0 -12
  283. data/doc/ex/segment.rb +0 -11
  284. data/doc/ex/sepiatone.rb +0 -8
  285. data/doc/ex/shade.rb +0 -11
  286. data/doc/ex/shadow.rb +0 -31
  287. data/doc/ex/shave.rb +0 -15
  288. data/doc/ex/shear.rb +0 -10
  289. data/doc/ex/sketch.rb +0 -18
  290. data/doc/ex/skewx.rb +0 -52
  291. data/doc/ex/skewy.rb +0 -47
  292. data/doc/ex/smile.rb +0 -125
  293. data/doc/ex/solarize.rb +0 -11
  294. data/doc/ex/sparse_color.rb +0 -55
  295. data/doc/ex/splice.rb +0 -9
  296. data/doc/ex/spread.rb +0 -11
  297. data/doc/ex/stegano.rb +0 -55
  298. data/doc/ex/stroke_dasharray.rb +0 -43
  299. data/doc/ex/stroke_fill.rb +0 -11
  300. data/doc/ex/stroke_linecap.rb +0 -44
  301. data/doc/ex/stroke_linejoin.rb +0 -48
  302. data/doc/ex/stroke_width.rb +0 -49
  303. data/doc/ex/swirl.rb +0 -17
  304. data/doc/ex/text.rb +0 -37
  305. data/doc/ex/text01.rb +0 -17
  306. data/doc/ex/text_align.rb +0 -36
  307. data/doc/ex/text_antialias.rb +0 -38
  308. data/doc/ex/text_styles.rb +0 -21
  309. data/doc/ex/text_undercolor.rb +0 -28
  310. data/doc/ex/texture_fill_to_border.rb +0 -34
  311. data/doc/ex/texture_floodfill.rb +0 -32
  312. data/doc/ex/texturefill.rb +0 -25
  313. data/doc/ex/threshold.rb +0 -13
  314. data/doc/ex/to_blob.rb +0 -14
  315. data/doc/ex/translate.rb +0 -39
  316. data/doc/ex/transparent.rb +0 -38
  317. data/doc/ex/transpose.rb +0 -9
  318. data/doc/ex/transverse.rb +0 -9
  319. data/doc/ex/tref01.rb +0 -25
  320. data/doc/ex/triangle01.rb +0 -16
  321. data/doc/ex/trim.rb +0 -24
  322. data/doc/ex/tspan01.rb +0 -18
  323. data/doc/ex/tspan02.rb +0 -19
  324. data/doc/ex/tspan03.rb +0 -21
  325. data/doc/ex/unsharp_mask.rb +0 -28
  326. data/doc/ex/viewex.rb +0 -35
  327. data/doc/ex/vignette.rb +0 -12
  328. data/doc/ex/watermark.rb +0 -28
  329. data/doc/ex/wave.rb +0 -9
  330. data/doc/ex/wet_floor.rb +0 -59
  331. data/doc/ex/writing_mode01.rb +0 -27
  332. data/doc/ex/writing_mode02.rb +0 -26
  333. data/doc/ilist.html +0 -2056
  334. data/doc/image1.html +0 -4680
  335. data/doc/image2.html +0 -3665
  336. data/doc/image3.html +0 -4522
  337. data/doc/imageattrs.html +0 -1638
  338. data/doc/imusage.html +0 -514
  339. data/doc/index.html +0 -416
  340. data/doc/info.html +0 -1499
  341. data/doc/magick.html +0 -565
  342. data/doc/optequiv.html +0 -2435
  343. data/doc/rvg.html +0 -975
  344. data/doc/rvgclip.html +0 -248
  345. data/doc/rvggroup.html +0 -305
  346. data/doc/rvgimage.html +0 -289
  347. data/doc/rvgpattern.html +0 -475
  348. data/doc/rvgshape.html +0 -406
  349. data/doc/rvgstyle.html +0 -270
  350. data/doc/rvgtext.html +0 -465
  351. data/doc/rvgtspan.html +0 -238
  352. data/doc/rvgtut.html +0 -530
  353. data/doc/rvguse.html +0 -145
  354. data/doc/rvgxform.html +0 -294
  355. data/doc/scripts/doc.js +0 -22
  356. data/doc/scripts/stripeTables.js +0 -23
  357. data/doc/struct.html +0 -1339
  358. data/doc/usage.html +0 -1621
  359. data/examples/constitute.rb +0 -7
  360. data/examples/crop_with_gravity.rb +0 -46
  361. data/examples/demo.rb +0 -324
  362. data/examples/describe.rb +0 -44
  363. data/examples/find_similar_region.rb +0 -34
  364. data/examples/histogram.rb +0 -325
  365. data/examples/identify.rb +0 -187
  366. data/examples/image_opacity.rb +0 -29
  367. data/examples/import_export.rb +0 -31
  368. data/examples/pattern_fill.rb +0 -38
  369. data/examples/rotating_text.rb +0 -45
  370. data/examples/spinner.rb +0 -50
  371. data/examples/thumbnail.rb +0 -65
  372. data/examples/vignette.rb +0 -79
  373. data/ext/RMagick/MANIFEST +0 -358
  374. data/lib/RMagick.rb +0 -1962
  375. data/metaconfig +0 -7
  376. data/post-clean.rb +0 -12
  377. data/post-install.rb +0 -50
  378. data/post-setup.rb +0 -254
  379. data/setup.rb +0 -1585
  380. data/uninstall.rb +0 -76
data/doc/ex/get_pixels.rb DELETED
@@ -1,48 +0,0 @@
1
- #! /usr/local/bin/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 { |x|
27
- opacity_steps[x] = Magick::TransparentOpacity - Integer(x * step)
28
- if opacity_steps[x] < Magick::OpaqueOpacity
29
- opacity_steps[x] = Magick::OpaqueOpacity
30
- end
31
- }
32
-
33
- # Get each row of pixels from the mono image.
34
- # Copy the pre-computed opacity values to the pixels.
35
- # Store the pixels back.
36
- rows.times { |y|
37
- pixels = grayrocks.get_pixels(0, y, cols, 1)
38
- pixels.each_with_index { |p,x| p.opacity = opacity_steps[x] }
39
- grayrocks.store_pixels(0, y, cols, 1, pixels)
40
- }
41
-
42
- # Composite the mono version of the image over the color version.
43
- grayrocks.matte = true
44
- combine = rocks.composite(grayrocks, Magick::CenterGravity, Magick::OverCompositeOp)
45
- #combine.display
46
- combine.write 'get_pixels.jpg'
47
- exit
48
-
@@ -1,146 +0,0 @@
1
- #! /usr/local/bin/ruby -w
2
- require 'RMagick'
3
-
4
- # Add a method for drawing braces.
5
- module Magick
6
- class Draw
7
-
8
- # (w,h) - width & height of rectangle enclosing brace.
9
- # Normally the brace is drawn with its opening to the
10
- # left and its lower point on the origin.
11
- #
12
- # Set w < 0 to draw right-opening brace. Set h < 0 to
13
- # position top point at origin.
14
- #
15
- # The placement & orientation is affected by the
16
- # current user coordinate system.
17
- def brace(w, h)
18
- raise(ArgumentError, "width must be != 0") unless w != 0
19
- raise(ArgumentError, "height must be != 0") unless h != 0
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
-
24
- end # class Draw
25
- end
26
-
27
-
28
-
29
- Origin_x = 110
30
- Origin_y = 230
31
- Glyph = 'g'
32
- Face = RUBY_PLATFORM =~ /mswin/ ? "Verdana" : "Times"
33
-
34
- canvas = Magick::Image.new(410, 320, Magick::HatchFill.new('white', 'lightcyan2'))
35
-
36
- # Draw a big lowercase 'g' on the canvas. Leave room on all sides for
37
- # the labels. Use 'undercolor' to set off the glyph.
38
- glyph = Magick::Draw.new
39
- glyph.annotate(canvas, 0, 0, Origin_x, Origin_y, Glyph) do
40
- glyph.pointsize = 124
41
- glyph.stroke = 'none'
42
- glyph.fill = 'black'
43
- glyph.font_family = Face
44
- glyph.undercolor = '#ffff00c0'
45
- end
46
-
47
- # Call get_type_metrics. This is what this example's all about.
48
- metrics = glyph.get_type_metrics(canvas, Glyph)
49
-
50
- gc = Magick::Draw.new
51
- gc.translate(Origin_x, Origin_y)
52
-
53
- # Draw the origin as a big red dot.
54
- gc.stroke('red')
55
- gc.fill('red')
56
- gc.circle(0, 0, 0, 2)
57
-
58
- # All our lines will be medium-gray, dashed, and thin.
59
- gc.stroke('gray50')
60
- gc.stroke_dasharray(5,2)
61
- gc.stroke_width(1)
62
- gc.fill('none')
63
-
64
- # baseline
65
- gc.line(-10, 0, metrics.width+20, 0)
66
-
67
- # a vertical line through the origin
68
- gc.line(0, -metrics.descent-metrics.height-10, 0, -metrics.descent+15)
69
-
70
- # descent
71
- gc.line(-10, -metrics.descent, metrics.width+20, -metrics.descent)
72
-
73
- # ascent
74
- gc.line(-10, -metrics.ascent, metrics.width+20, -metrics.ascent)
75
-
76
- # height
77
- gc.line(-10, -metrics.descent-metrics.height,
78
- metrics.width+10, -metrics.descent-metrics.height)
79
-
80
- # width
81
- gc.line(metrics.width, -metrics.descent-metrics.height-10,
82
- metrics.width, -metrics.descent+20)
83
-
84
- # max_advance
85
- gc.line(metrics.max_advance, -10, metrics.max_advance, -metrics.descent+20)
86
-
87
- gc.draw(canvas)
88
-
89
- # Draw the braces and labels. Position the braces by transforming the
90
- # user coordinate system with translate and rotate methods.
91
- gc = Magick::Draw.new
92
- gc.font_family('Face')
93
- gc.pointsize(13)
94
- gc.fill('none')
95
- gc.stroke('black')
96
- gc.stroke_width(1)
97
- gc.translate(Origin_x, Origin_y)
98
-
99
- # between origin and descent
100
- gc.push
101
- gc.translate(metrics.width+23, 0)
102
- gc.brace(10, metrics.descent)
103
- gc.pop
104
-
105
- # between origin and ascent
106
- gc.push
107
- gc.translate(metrics.width+23, 0)
108
- gc.brace(10, metrics.ascent)
109
- gc.pop
110
-
111
- # between origin and height
112
- gc.push
113
- gc.translate(-13, -metrics.descent-metrics.height)
114
- gc.rotate(180)
115
- gc.brace(10, metrics.height)
116
- gc.pop
117
-
118
- # between origin and width
119
- gc.push
120
- gc.translate(metrics.width, -metrics.descent-metrics.height-10-3)
121
- gc.rotate(-90)
122
- gc.brace(10, metrics.width)
123
- gc.pop
124
-
125
- # between origin and max_advance
126
- gc.push
127
- gc.translate(0, -metrics.descent+15)
128
- gc.rotate(90)
129
- gc.brace(10, metrics.max_advance)
130
- gc.pop
131
-
132
- # Add labels
133
- gc.font_weight(Magick::NormalWeight)
134
- gc.font_style(Magick::NormalStyle)
135
- gc.stroke('none')
136
- gc.fill('black')
137
- gc.text(metrics.width+40, -(metrics.ascent/2)+4, 'ascent')
138
- gc.text(metrics.width+40, -(metrics.descent/2)+4, 'descent')
139
- gc.text(-60, -metrics.descent-metrics.height/2+4, 'height')
140
- gc.text((metrics.width/2)-15, -metrics.descent-metrics.height-25, 'width')
141
- gc.text((metrics.max_advance)/2-38, -metrics.descent+35, "max_advance")
142
-
143
- gc.draw(canvas)
144
- canvas.border!(1,1,'blue')
145
- canvas.write('get_type_metrics.gif')
146
-
@@ -1,27 +0,0 @@
1
- #! /usr/local/bin/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}')") {
19
- self.gravity = Magick::CenterGravity
20
- self.fill = 'white'
21
- self.stroke = 'transparent'
22
- self.pointsize = 14
23
- }
24
-
25
- #img.display
26
- img.write("gradientfill.gif")
27
- exit
data/doc/ex/grav.rb DELETED
@@ -1,46 +0,0 @@
1
- #! /usr/local/bin/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
46
-
data/doc/ex/gravity.rb DELETED
@@ -1,79 +0,0 @@
1
- #! /usr/local/bin/ruby -w
2
- #
3
- # A RMagick version of Magick++/demo/gravity.cpp
4
- #
5
-
6
- require 'RMagick'
7
-
8
- x, y = 100, 100
9
-
10
- begin
11
-
12
- pic = Magick::ImageList.new
13
-
14
- lines = Magick::Draw.new
15
- lines.stroke "#600"
16
- lines.fill_opacity 0
17
- lines.line 300,100, 300,500
18
- lines.line 100,300, 500,300
19
- lines.rectangle 100,100, 500,500
20
-
21
- draw = Magick::Draw.new
22
- draw.pointsize = 30
23
- draw.fill = "#600"
24
- draw.undercolor = "red"
25
-
26
- 0.step(330, 30) { |angle|
27
- puts "angle #{angle}"
28
- pic.new_image(600, 600) { self.background_color = "white" }
29
-
30
- lines.draw pic
31
-
32
- draw.annotate(pic, 0,0,x,y, "NorthWest") {
33
- self.gravity = Magick::NorthWestGravity
34
- self.rotation = angle
35
- }
36
- draw.annotate(pic, 0,0,0,y, "North") {
37
- self.gravity = Magick::NorthGravity
38
- self.rotation = angle
39
- }
40
- draw.annotate(pic, 0,0,x,y, "NorthEast") {
41
- self.gravity = Magick::NorthEastGravity
42
- self.rotation = angle
43
- }
44
- draw.annotate(pic, 0,0,x,0, "East") {
45
- self.gravity = Magick::EastGravity
46
- self.rotation = angle
47
- }
48
- draw.annotate(pic, 0,0,0,0, "Center") {
49
- self.gravity = Magick::CenterGravity
50
- self.rotation = angle
51
- }
52
- draw.annotate(pic, 0,0,x,y, "SouthEast") {
53
- self.gravity = Magick::SouthEastGravity
54
- self.rotation = angle
55
- }
56
- draw.annotate(pic, 0,0,0,y, "South") {
57
- self.gravity = Magick::SouthGravity
58
- self.rotation = angle
59
- }
60
- draw.annotate(pic, 0,0,x,y, "SouthWest") {
61
- self.gravity = Magick::SouthWestGravity
62
- self.rotation = angle
63
- }
64
- draw.annotate(pic, 0,0,x,0, "West") {
65
- self.gravity = Magick::WestGravity
66
- self.rotation = angle
67
- }
68
- }
69
-
70
- puts "Writing image \"rm_gravity_out.miff\"..."
71
- pic.delay = 20
72
- pic.write "./rm_gravity_out.miff"
73
-
74
- rescue
75
- puts "#{$!} exception raised."
76
- exit 1
77
- end
78
-
79
- 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 {|y|
20
- 6.times {|x|
21
- canvas.use(stick, x*100, y*200)
22
- }
23
- }
24
- end
25
-
26
- rvg.draw.write('group.gif')
data/doc/ex/hatchfill.rb DELETED
@@ -1,27 +0,0 @@
1
- #! /usr/local/bin/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}')") {
20
- self.gravity = Magick::CenterGravity
21
- self.fill = 'black'
22
- self.stroke = 'transparent'
23
- self.pointsize = 14
24
- }
25
- #img.display
26
- img.write('hatchfill.gif')
27
- exit
data/doc/ex/image.rb DELETED
@@ -1,46 +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
-
43
- end
44
-
45
- rvg.draw.write('image.gif')
46
-
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