rmagick 2.13.4 → 2.14.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 (255) hide show
  1. checksums.yaml +4 -4
  2. data/.hound.yml +2 -0
  3. data/.rubocop.yml +284 -0
  4. data/.simplecov +27 -0
  5. data/.travis.yml +24 -12
  6. data/ChangeLog +12 -0
  7. data/Gemfile +3 -0
  8. data/README.textile +63 -1
  9. data/Rakefile +53 -44
  10. data/before_install_linux.sh +15 -6
  11. data/deprecated/RMagick.rb +6 -0
  12. data/doc/comtasks.html +1 -1
  13. data/doc/ex/InitialCoords.rb +16 -17
  14. data/doc/ex/NewCoordSys.rb +21 -23
  15. data/doc/ex/OrigCoordSys.rb +8 -10
  16. data/doc/ex/PreserveAspectRatio.rb +182 -183
  17. data/doc/ex/RotateScale.rb +27 -28
  18. data/doc/ex/Skew.rb +27 -27
  19. data/doc/ex/Use01.rb +7 -8
  20. data/doc/ex/Use02.rb +11 -12
  21. data/doc/ex/Use03.rb +7 -7
  22. data/doc/ex/ViewBox.rb +16 -18
  23. data/doc/ex/adaptive_threshold.rb +4 -5
  24. data/doc/ex/add_noise.rb +4 -5
  25. data/doc/ex/affine.rb +4 -4
  26. data/doc/ex/affine_transform.rb +4 -4
  27. data/doc/ex/arc.rb +10 -10
  28. data/doc/ex/arcpath.rb +7 -8
  29. data/doc/ex/arcs01.rb +10 -10
  30. data/doc/ex/arcs02.rb +36 -38
  31. data/doc/ex/average.rb +5 -5
  32. data/doc/ex/axes.rb +4 -4
  33. data/doc/ex/baseline_shift01.rb +11 -12
  34. data/doc/ex/bilevel_channel.rb +2 -3
  35. data/doc/ex/blur_image.rb +2 -2
  36. data/doc/ex/border.rb +2 -2
  37. data/doc/ex/bounding_box.rb +9 -11
  38. data/doc/ex/cbezier1.rb +3 -4
  39. data/doc/ex/cbezier2.rb +3 -4
  40. data/doc/ex/cbezier3.rb +3 -4
  41. data/doc/ex/cbezier4.rb +3 -4
  42. data/doc/ex/cbezier5.rb +2 -3
  43. data/doc/ex/cbezier6.rb +3 -3
  44. data/doc/ex/channel.rb +10 -11
  45. data/doc/ex/charcoal.rb +2 -2
  46. data/doc/ex/chop.rb +2 -2
  47. data/doc/ex/circle.rb +3 -3
  48. data/doc/ex/circle01.rb +6 -7
  49. data/doc/ex/clip_path.rb +12 -12
  50. data/doc/ex/coalesce.rb +32 -35
  51. data/doc/ex/color_fill_to_border.rb +6 -6
  52. data/doc/ex/color_floodfill.rb +2 -2
  53. data/doc/ex/color_histogram.rb +17 -18
  54. data/doc/ex/color_reset.rb +2 -2
  55. data/doc/ex/colorize.rb +2 -2
  56. data/doc/ex/colors.rb +30 -30
  57. data/doc/ex/compose_mask.rb +8 -9
  58. data/doc/ex/composite.rb +14 -16
  59. data/doc/ex/composite_layers.rb +15 -15
  60. data/doc/ex/composite_tiled.rb +5 -7
  61. data/doc/ex/contrast.rb +12 -12
  62. data/doc/ex/crop.rb +3 -3
  63. data/doc/ex/crop_with_gravity.rb +13 -17
  64. data/doc/ex/cubic01.rb +18 -20
  65. data/doc/ex/cubic02.rb +64 -67
  66. data/doc/ex/cycle_colormap.rb +2 -2
  67. data/doc/ex/dissolve.rb +2 -3
  68. data/doc/ex/drawcomp.rb +34 -34
  69. data/doc/ex/drop_shadow.rb +8 -8
  70. data/doc/ex/edge.rb +2 -2
  71. data/doc/ex/ellipse.rb +4 -4
  72. data/doc/ex/ellipse01.rb +10 -11
  73. data/doc/ex/emboss.rb +2 -2
  74. data/doc/ex/enhance.rb +2 -2
  75. data/doc/ex/equalize.rb +2 -2
  76. data/doc/ex/evenodd.rb +31 -32
  77. data/doc/ex/fill_pattern.rb +12 -15
  78. data/doc/ex/flatten_images.rb +13 -13
  79. data/doc/ex/flip.rb +2 -2
  80. data/doc/ex/flop.rb +2 -2
  81. data/doc/ex/font_styles.rb +21 -23
  82. data/doc/ex/fonts.rb +14 -14
  83. data/doc/ex/frame.rb +3 -3
  84. data/doc/ex/gaussian_blur.rb +2 -2
  85. data/doc/ex/get_multiline_type_metrics.rb +6 -7
  86. data/doc/ex/get_pixels.rb +13 -14
  87. data/doc/ex/get_type_metrics.rb +26 -31
  88. data/doc/ex/gradientfill.rb +12 -12
  89. data/doc/ex/grav.rb +4 -5
  90. data/doc/ex/gravity.rb +59 -59
  91. data/doc/ex/group.rb +16 -16
  92. data/doc/ex/hatchfill.rb +10 -10
  93. data/doc/ex/image.rb +29 -31
  94. data/doc/ex/implode.rb +17 -17
  95. data/doc/ex/level.rb +2 -2
  96. data/doc/ex/level_colors.rb +4 -4
  97. data/doc/ex/line.rb +4 -5
  98. data/doc/ex/line01.rb +11 -13
  99. data/doc/ex/mask.rb +7 -8
  100. data/doc/ex/matte_fill_to_border.rb +2 -3
  101. data/doc/ex/matte_floodfill.rb +2 -3
  102. data/doc/ex/matte_replace.rb +2 -3
  103. data/doc/ex/median_filter.rb +2 -2
  104. data/doc/ex/modulate.rb +2 -2
  105. data/doc/ex/mono.rb +4 -4
  106. data/doc/ex/morph.rb +7 -8
  107. data/doc/ex/mosaic.rb +15 -15
  108. data/doc/ex/motion_blur.rb +2 -2
  109. data/doc/ex/negate.rb +2 -2
  110. data/doc/ex/negate_channel.rb +2 -2
  111. data/doc/ex/nested_rvg.rb +11 -11
  112. data/doc/ex/nonzero.rb +31 -32
  113. data/doc/ex/normalize.rb +2 -2
  114. data/doc/ex/oil_paint.rb +2 -2
  115. data/doc/ex/opacity.rb +3 -3
  116. data/doc/ex/ordered_dither.rb +2 -2
  117. data/doc/ex/path.rb +4 -5
  118. data/doc/ex/pattern1.rb +10 -10
  119. data/doc/ex/pattern2.rb +7 -7
  120. data/doc/ex/polaroid.rb +13 -14
  121. data/doc/ex/polygon.rb +6 -7
  122. data/doc/ex/polygon01.rb +10 -12
  123. data/doc/ex/polyline.rb +4 -5
  124. data/doc/ex/polyline01.rb +11 -13
  125. data/doc/ex/posterize.rb +2 -2
  126. data/doc/ex/preview.rb +3 -4
  127. data/doc/ex/qbezierpath.rb +5 -5
  128. data/doc/ex/quad01.rb +23 -25
  129. data/doc/ex/quantize-m.rb +5 -5
  130. data/doc/ex/radial_blur.rb +2 -2
  131. data/doc/ex/raise.rb +2 -2
  132. data/doc/ex/random_threshold_channel.rb +2 -2
  133. data/doc/ex/rect01.rb +6 -7
  134. data/doc/ex/rect02.rb +9 -11
  135. data/doc/ex/rectangle.rb +3 -4
  136. data/doc/ex/reduce_noise.rb +2 -2
  137. data/doc/ex/remap.rb +7 -8
  138. data/doc/ex/remap_images.rb +9 -11
  139. data/doc/ex/resize_to_fill.rb +3 -5
  140. data/doc/ex/resize_to_fit.rb +3 -5
  141. data/doc/ex/roll.rb +2 -2
  142. data/doc/ex/rotate.rb +6 -7
  143. data/doc/ex/rotate_f.rb +2 -2
  144. data/doc/ex/roundrect.rb +4 -5
  145. data/doc/ex/rubyname.rb +11 -11
  146. data/doc/ex/rvg_clippath.rb +5 -7
  147. data/doc/ex/rvg_linecap.rb +25 -26
  148. data/doc/ex/rvg_linejoin.rb +25 -26
  149. data/doc/ex/rvg_opacity.rb +10 -11
  150. data/doc/ex/rvg_pattern.rb +15 -15
  151. data/doc/ex/rvg_stroke_dasharray.rb +6 -7
  152. data/doc/ex/segment.rb +2 -2
  153. data/doc/ex/sepiatone.rb +2 -3
  154. data/doc/ex/shade.rb +2 -2
  155. data/doc/ex/shadow.rb +2 -3
  156. data/doc/ex/shave.rb +2 -2
  157. data/doc/ex/shear.rb +3 -3
  158. data/doc/ex/sketch.rb +2 -3
  159. data/doc/ex/skewx.rb +4 -5
  160. data/doc/ex/skewy.rb +3 -3
  161. data/doc/ex/smile.rb +113 -113
  162. data/doc/ex/solarize.rb +2 -2
  163. data/doc/ex/sparse_color.rb +29 -30
  164. data/doc/ex/splice.rb +2 -3
  165. data/doc/ex/spread.rb +2 -2
  166. data/doc/ex/stegano.rb +34 -34
  167. data/doc/ex/stroke_dasharray.rb +4 -5
  168. data/doc/ex/stroke_fill.rb +4 -5
  169. data/doc/ex/stroke_linecap.rb +3 -3
  170. data/doc/ex/stroke_linejoin.rb +3 -3
  171. data/doc/ex/stroke_width.rb +3 -3
  172. data/doc/ex/swirl.rb +2 -2
  173. data/doc/ex/text.rb +4 -4
  174. data/doc/ex/text01.rb +7 -8
  175. data/doc/ex/text_align.rb +2 -2
  176. data/doc/ex/text_antialias.rb +9 -10
  177. data/doc/ex/text_styles.rb +11 -13
  178. data/doc/ex/text_undercolor.rb +2 -2
  179. data/doc/ex/texture_fill_to_border.rb +6 -6
  180. data/doc/ex/texture_floodfill.rb +2 -2
  181. data/doc/ex/texturefill.rb +10 -11
  182. data/doc/ex/threshold.rb +2 -2
  183. data/doc/ex/to_blob.rb +4 -5
  184. data/doc/ex/translate.rb +6 -6
  185. data/doc/ex/transparent.rb +5 -5
  186. data/doc/ex/transpose.rb +2 -2
  187. data/doc/ex/transverse.rb +2 -2
  188. data/doc/ex/tref01.rb +11 -12
  189. data/doc/ex/triangle01.rb +5 -6
  190. data/doc/ex/trim.rb +1 -2
  191. data/doc/ex/tspan01.rb +8 -9
  192. data/doc/ex/tspan02.rb +9 -11
  193. data/doc/ex/tspan03.rb +9 -11
  194. data/doc/ex/unsharp_mask.rb +2 -2
  195. data/doc/ex/viewex.rb +19 -21
  196. data/doc/ex/vignette.rb +2 -2
  197. data/doc/ex/watermark.rb +15 -16
  198. data/doc/ex/wave.rb +2 -2
  199. data/doc/ex/wet_floor.rb +17 -18
  200. data/doc/ex/writing_mode01.rb +8 -9
  201. data/doc/ex/writing_mode02.rb +8 -8
  202. data/doc/ilist.html +1 -1
  203. data/doc/usage.html +8 -8
  204. data/examples/constitute.rb +6 -6
  205. data/examples/crop_with_gravity.rb +13 -17
  206. data/examples/demo.rb +305 -305
  207. data/examples/describe.rb +27 -28
  208. data/examples/find_similar_region.rb +16 -16
  209. data/examples/histogram.rb +228 -232
  210. data/examples/identify.rb +165 -167
  211. data/examples/image_opacity.rb +4 -4
  212. data/examples/import_export.rb +10 -10
  213. data/examples/pattern_fill.rb +9 -9
  214. data/examples/rotating_text.rb +13 -14
  215. data/examples/spinner.rb +18 -19
  216. data/examples/thumbnail.rb +13 -14
  217. data/examples/vignette.rb +8 -9
  218. data/ext/RMagick/extconf.rb +417 -370
  219. data/ext/RMagick/rmdraw.c +14 -7
  220. data/ext/RMagick/rmenum.c +5 -3
  221. data/ext/RMagick/rmmain.c +8 -3
  222. data/ext/RMagick/rmutil.c +2 -2
  223. data/lib/rmagick/version.rb +3 -3
  224. data/lib/rmagick_internal.rb +1782 -1801
  225. data/lib/rvg/clippath.rb +2 -6
  226. data/lib/rvg/container.rb +4 -12
  227. data/lib/rvg/deep_equal.rb +5 -7
  228. data/lib/rvg/describable.rb +0 -5
  229. data/lib/rvg/embellishable.rb +24 -54
  230. data/lib/rvg/misc.rb +55 -87
  231. data/lib/rvg/paint.rb +0 -4
  232. data/lib/rvg/pathdata.rb +12 -16
  233. data/lib/rvg/rvg.rb +21 -24
  234. data/lib/rvg/stretchable.rb +14 -18
  235. data/lib/rvg/stylable.rb +7 -14
  236. data/lib/rvg/text.rb +9 -23
  237. data/lib/rvg/transformable.rb +2 -9
  238. data/lib/rvg/units.rb +1 -4
  239. data/rmagick.gemspec +23 -14
  240. data/test/Draw.rb +22 -24
  241. data/test/Image1.rb +78 -82
  242. data/test/Image2.rb +143 -151
  243. data/test/Image3.rb +47 -50
  244. data/test/ImageList1.rb +7 -9
  245. data/test/ImageList2.rb +30 -34
  246. data/test/Image_attributes.rb +23 -26
  247. data/test/Import_Export.rb +25 -30
  248. data/test/Info.rb +66 -70
  249. data/test/Magick.rb +45 -50
  250. data/test/Pixel.rb +10 -13
  251. data/test/Preview.rb +6 -11
  252. data/test/test_all_basic.rb +15 -10
  253. data/test/tmpnam_test.rb +3 -3
  254. metadata +24 -6
  255. data/lib/RMagick.rb +0 -1
@@ -1,37 +1,36 @@
1
1
  require 'rvg/rvg'
2
2
 
3
3
  rvg = Magick::RVG.new(400, 120) do |canvas|
4
- canvas.desc = 'Example RotateScale - Rotate and scale transforms'
5
- canvas.background_fill = 'white'
6
- canvas.g.styles(:fill=>'none', :stroke=>'black', :stroke_width=>3) do |grp|
7
- # Draw the axes of the original coordinate system
8
- grp.line(0, 1.5, 400, 1.5)
9
- grp.line(1.5, 0, 1.5, 120)
10
- end
11
- # Establish a new coordinate system whose origin is at (50,30)
12
- # in the original coord. system and which is rotated by 30 degrees.
13
- canvas.g.translate(50,30) do |grp|
14
- grp.g.rotate(30) do |grp2|
15
- grp2.g.styles(:fill=>'none',:stroke=>'red',:stroke_width=>3) do |grp3|
16
- grp3.line(0, 0, 50, 0)
17
- grp3.line(0, 0, 0, 50)
18
- end
19
- grp2.text(0, 0, "ABC (rotate)").styles(:font_size=>20, :fill=>'blue', :font_family=>'Verdana', :font_weight=>'normal', :font_style=>'normal')
20
- end
4
+ canvas.desc = 'Example RotateScale - Rotate and scale transforms'
5
+ canvas.background_fill = 'white'
6
+ canvas.g.styles(:fill=>'none', :stroke=>'black', :stroke_width=>3) do |grp|
7
+ # Draw the axes of the original coordinate system
8
+ grp.line(0, 1.5, 400, 1.5)
9
+ grp.line(1.5, 0, 1.5, 120)
10
+ end
11
+ # Establish a new coordinate system whose origin is at (50,30)
12
+ # in the original coord. system and which is rotated by 30 degrees.
13
+ canvas.g.translate(50,30) do |grp|
14
+ grp.g.rotate(30) do |grp2|
15
+ grp2.g.styles(:fill=>'none',:stroke=>'red',:stroke_width=>3) do |grp3|
16
+ grp3.line(0, 0, 50, 0)
17
+ grp3.line(0, 0, 0, 50)
18
+ end
19
+ grp2.text(0, 0, 'ABC (rotate)').styles(:font_size=>20, :fill=>'blue', :font_family=>'Verdana', :font_weight=>'normal', :font_style=>'normal')
21
20
  end
21
+ end
22
22
 
23
- # Establish a new coordinate system whose origin is at (200,40)
24
- # in the original coord. systm and which is scaled by 1.5
25
- canvas.g.translate(200,40) do |grp|
26
- grp.g.scale(1.5) do |grp2|
27
- grp2.g.styles(:fill=>'none',:stroke=>'red',:stroke_width=>3) do |grp3|
28
- grp3.line(0, 0, 50, 0)
29
- grp3.line(0, 0, 0, 50)
30
- end
31
- grp2.text(0, 0, "ABC (scale)").styles(:font_size=>20, :fill=>'blue', :font_family=>'Verdana', :font_weight=>'normal', :font_style=>'normal')
32
- end
23
+ # Establish a new coordinate system whose origin is at (200,40)
24
+ # in the original coord. systm and which is scaled by 1.5
25
+ canvas.g.translate(200,40) do |grp|
26
+ grp.g.scale(1.5) do |grp2|
27
+ grp2.g.styles(:fill=>'none',:stroke=>'red',:stroke_width=>3) do |grp3|
28
+ grp3.line(0, 0, 50, 0)
29
+ grp3.line(0, 0, 0, 50)
30
+ end
31
+ grp2.text(0, 0, 'ABC (scale)').styles(:font_size=>20, :fill=>'blue', :font_family=>'Verdana', :font_weight=>'normal', :font_style=>'normal')
33
32
  end
33
+ end
34
34
  end
35
35
 
36
36
  rvg.draw.write('RotateScale.gif')
37
-
@@ -1,38 +1,38 @@
1
1
  require 'rvg/rvg'
2
2
 
3
3
  rvg = Magick::RVG.new(400, 120) do |canvas|
4
- canvas.desc = 'Example Skew - Show effects of skewX and skewY'
5
- canvas.background_fill = 'white'
4
+ canvas.desc = 'Example Skew - Show effects of skewX and skewY'
5
+ canvas.background_fill = 'white'
6
6
 
7
- canvas.g.styles(:fill=>'none',:stroke=>'black',:stroke_width=>3) do |grp|
8
- # Draw the axes of the original coordinate system
9
- grp.line(0, 1.5, 400, 1.5)
10
- grp.line(1.5, 0, 1.5, 120)
11
- end
7
+ canvas.g.styles(:fill=>'none',:stroke=>'black',:stroke_width=>3) do |grp|
8
+ # Draw the axes of the original coordinate system
9
+ grp.line(0, 1.5, 400, 1.5)
10
+ grp.line(1.5, 0, 1.5, 120)
11
+ end
12
12
 
13
- # Establisha new coordinate system whose origin is at (30,30)
14
- # in the initial coord. system and which is skewed in X by 30 degrees.
15
- canvas.g.translate(30,30) do |grp|
16
- grp.skewX(30) do |grp2|
17
- grp2.g.styles(:fill=>'none', :stroke=>'red', :stroke_width=>3) do |grp3|
18
- grp3.line(0, 0, 50, 0)
19
- grp3.line(0, 0, 0, 50)
20
- end
21
- grp.text(0, 0, 'ABC (skewX)').styles(:font_size=>20, :fill=>'blue', :font_family=>'Verdana', :font_weight=>'normal', :font_style=>'normal')
22
- end
13
+ # Establisha new coordinate system whose origin is at (30,30)
14
+ # in the initial coord. system and which is skewed in X by 30 degrees.
15
+ canvas.g.translate(30,30) do |grp|
16
+ grp.skewX(30) do |grp2|
17
+ grp2.g.styles(:fill=>'none', :stroke=>'red', :stroke_width=>3) do |grp3|
18
+ grp3.line(0, 0, 50, 0)
19
+ grp3.line(0, 0, 0, 50)
20
+ end
21
+ grp.text(0, 0, 'ABC (skewX)').styles(:font_size=>20, :fill=>'blue', :font_family=>'Verdana', :font_weight=>'normal', :font_style=>'normal')
23
22
  end
23
+ end
24
24
 
25
- # Establish a new coordinate system whose origin is at (200,30)
26
- # in the initial coord. system and which is skewed in Y by 30 degrees.
27
- canvas.g.translate(200,30) do |grp|
28
- grp.skewY(30) do |grp2|
29
- grp2.g.styles(:fill=>'none', :stroke=>'red', :stroke_width=>3) do |grp3|
30
- grp3.line(0, 0, 50, 0)
31
- grp3.line(0, 0, 0, 50)
32
- end
33
- grp.text(0, 0, 'ABC (skewY)').styles(:font_size=>20, :fill=>'blue', :font_family=>'Verdana', :font_weight=>'normal', :font_style=>'normal')
34
- end
25
+ # Establish a new coordinate system whose origin is at (200,30)
26
+ # in the initial coord. system and which is skewed in Y by 30 degrees.
27
+ canvas.g.translate(200,30) do |grp|
28
+ grp.skewY(30) do |grp2|
29
+ grp2.g.styles(:fill=>'none', :stroke=>'red', :stroke_width=>3) do |grp3|
30
+ grp3.line(0, 0, 50, 0)
31
+ grp3.line(0, 0, 0, 50)
32
+ end
33
+ grp.text(0, 0, 'ABC (skewY)').styles(:font_size=>20, :fill=>'blue', :font_family=>'Verdana', :font_weight=>'normal', :font_style=>'normal')
35
34
  end
35
+ end
36
36
  end
37
37
 
38
38
  rvg.draw.write('Skew.gif')
@@ -3,14 +3,13 @@ require 'rvg/rvg'
3
3
  Magick::RVG.dpi = 90
4
4
 
5
5
  rvg = Magick::RVG.new(10.cm, 3.cm).viewbox(0, 0, 100, 30) do |canvas|
6
- canvas.background_fill = 'white'
7
- canvas.desc = "Example Use01 - Simple case of 'use' on a 'rect'"
8
- r = Magick::RVG::Group.new do |grp|
9
- grp.rect(60, 10)
10
- end
11
- canvas.rect(99.6, 29.6, 0.1, 0.1).styles(:fill=>'none', :stroke=>'blue', :stroke_width=>0.2)
12
- canvas.use(r, 20, 10)
6
+ canvas.background_fill = 'white'
7
+ canvas.desc = "Example Use01 - Simple case of 'use' on a 'rect'"
8
+ r = Magick::RVG::Group.new do |grp|
9
+ grp.rect(60, 10)
10
+ end
11
+ canvas.rect(99.6, 29.6, 0.1, 0.1).styles(:fill=>'none', :stroke=>'blue', :stroke_width=>0.2)
12
+ canvas.use(r, 20, 10)
13
13
  end
14
14
 
15
15
  rvg.draw.write('Use01.gif')
16
-
@@ -3,19 +3,18 @@ require 'rvg/rvg'
3
3
  Magick::RVG.dpi = 90
4
4
 
5
5
  rvg = Magick::RVG.new(10.cm, 3.5.cm).viewbox(0, 0, 100, 35) do |canvas|
6
- canvas.background_fill = 'white'
7
- canvas.desc = "Example Use02 - Chain 'styles' to 'use'"
8
- r = Magick::RVG::Group.new do |grp|
9
- grp.rect(60, 10).styles(:fill=>'yellow')
10
- end
11
- canvas.rect(99.6, 34.6, 0.1, 0.1).styles(:fill=>'none', :stroke=>'blue', :stroke_width=>0.2)
6
+ canvas.background_fill = 'white'
7
+ canvas.desc = "Example Use02 - Chain 'styles' to 'use'"
8
+ r = Magick::RVG::Group.new do |grp|
9
+ grp.rect(60, 10).styles(:fill=>'yellow')
10
+ end
11
+ canvas.rect(99.6, 34.6, 0.1, 0.1).styles(:fill=>'none', :stroke=>'blue', :stroke_width=>0.2)
12
12
 
13
- # Since the rectangle specified the fill color the :fill style is ignored here.
14
- # However, since the rectangle did not specify a stroke color, the :stroke style
15
- # specified here is respected.
16
- canvas.use(r, 20, 5).styles(:fill=>'green', :stroke=>'red')
17
- canvas.use(r, 20, 20).styles(:fill=>'green', :stroke=>'blue')
13
+ # Since the rectangle specified the fill color the :fill style is ignored here.
14
+ # However, since the rectangle did not specify a stroke color, the :stroke style
15
+ # specified here is respected.
16
+ canvas.use(r, 20, 5).styles(:fill=>'green', :stroke=>'red')
17
+ canvas.use(r, 20, 20).styles(:fill=>'green', :stroke=>'blue')
18
18
  end
19
19
 
20
20
  rvg.draw.write('Use02.gif')
21
-
@@ -3,14 +3,14 @@ require 'rvg/rvg'
3
3
  Magick::RVG.dpi = 90
4
4
 
5
5
  rvg = Magick::RVG.new(10.cm, 3.cm).viewbox(0, 0, 100, 30) do |canvas|
6
- canvas.background_fill = 'white'
7
- canvas.desc = "Example Use03 - 'use' with a 'transform' attribute"
6
+ canvas.background_fill = 'white'
7
+ canvas.desc = "Example Use03 - 'use' with a 'transform' attribute"
8
8
 
9
- myrect = Magick::RVG::Group.new do |grp|
10
- grp.rect(60, 10)
11
- end
12
- canvas.rect(99.6, 29.6, 0.1, 0.1).styles(:fill=>'none', :stroke=>'blue', :stroke_width=>0.2)
13
- canvas.use(myrect).translate(20,2.5).rotate(10)
9
+ myrect = Magick::RVG::Group.new do |grp|
10
+ grp.rect(60, 10)
11
+ end
12
+ canvas.rect(99.6, 29.6, 0.1, 0.1).styles(:fill=>'none', :stroke=>'blue', :stroke_width=>0.2)
13
+ canvas.use(myrect).translate(20,2.5).rotate(10)
14
14
  end
15
15
 
16
16
  rvg.draw.write('Use03.gif')
@@ -1,33 +1,31 @@
1
1
  require 'rvg/rvg'
2
2
 
3
3
  def example(cols, rows)
4
- rvg = Magick::RVG.new(cols, rows) do |canvas|
5
- canvas.background_fill = 'white'
6
- canvas.desc = <<-'END_DESC'
4
+ rvg = Magick::RVG.new(cols, rows) do |canvas|
5
+ canvas.background_fill = 'white'
6
+ canvas.desc = <<-'END_DESC'
7
7
  Example ViewBox - uses the viewBox attribute to automatically create an
8
8
  initial user coordinate system which causes the graphic to scale to fit
9
9
  into the viewport no matter what size the viewport is.
10
10
  END_DESC
11
11
 
12
- canvas.viewbox(0, 0, 1500, 1000)
13
- canvas.preserve_aspect_ratio('none')
12
+ canvas.viewbox(0, 0, 1500, 1000)
13
+ canvas.preserve_aspect_ratio('none')
14
14
 
15
- # This rectangle goes from (0,0) to (1500,1000) in user space.
16
- # Because of the viewBox attribute above,
17
- # the rectangle will end up filling the entire area
18
- # reserved for the SVG content.
19
- canvas.rect(1500, 1000).styles(:fill=>'yellow',:stroke=>'blue',:stroke_width=>12)
15
+ # This rectangle goes from (0,0) to (1500,1000) in user space.
16
+ # Because of the viewBox attribute above,
17
+ # the rectangle will end up filling the entire area
18
+ # reserved for the SVG content.
19
+ canvas.rect(1500, 1000).styles(:fill=>'yellow',:stroke=>'blue',:stroke_width=>12)
20
20
 
21
- # A large, red triangle
22
- canvas.path("M 750,100 L 250,900 L 1250,900 z").styles(:fill=>'red')
21
+ # A large, red triangle
22
+ canvas.path('M 750,100 L 250,900 L 1250,900 z').styles(:fill=>'red')
23
23
 
24
- # A text string that spans most of the viewport
25
- canvas.text(100, 600, 'Stretch to fit').styles(:font_size=>200, :font_style=>'normal', :font_weight=>'normal', :font_family=>'Verdana')
26
-
27
- end
28
- return rvg.draw
24
+ # A text string that spans most of the viewport
25
+ canvas.text(100, 600, 'Stretch to fit').styles(:font_size=>200, :font_style=>'normal', :font_weight=>'normal', :font_family=>'Verdana')
26
+ end
27
+ rvg.draw
29
28
  end
30
29
 
31
30
  example(300, 200).write('ViewBox_300x200.gif')
32
31
  example(150, 200).write('ViewBox_150x200.gif')
33
-
@@ -1,10 +1,9 @@
1
- #! /usr/local/bin/ruby -w
2
- require 'RMagick'
1
+ #!/usr/bin/env ruby -w
2
+ require 'rmagick'
3
3
 
4
4
  # Demonstrate the Image#adaptive_threshold method
5
5
 
6
- img = Magick::Image.read("images/Flower_Hat.jpg").first
6
+ img = Magick::Image.read('images/Flower_Hat.jpg').first
7
7
  result = img.adaptive_threshold
8
- result.write("adaptive_threshold.jpg")
8
+ result.write('adaptive_threshold.jpg')
9
9
  exit
10
-
@@ -1,5 +1,5 @@
1
- #! /usr/local/bin/ruby -w
2
- require 'RMagick'
1
+ #!/usr/bin/env ruby -w
2
+ require 'rmagick'
3
3
 
4
4
  # Demonstrate the Image#add_noise method
5
5
  NOISE_TYPES = [Magick::UniformNoise, Magick::GaussianNoise,
@@ -10,8 +10,7 @@ NOISE_TYPES = [Magick::UniformNoise, Magick::GaussianNoise,
10
10
  img = Magick::Image.read('images/Flower_Hat.jpg').first
11
11
 
12
12
  NOISE_TYPES.each do |noise|
13
- copy = img.add_noise(noise)
14
- copy.write "add_noise_#{noise.to_s}.jpg"
15
-
13
+ copy = img.add_noise(noise)
14
+ copy.write "add_noise_#{noise}.jpg"
16
15
  end
17
16
  exit
@@ -1,5 +1,5 @@
1
- #! /usr/local/bin/ruby -w
2
- require 'RMagick'
1
+ #!/usr/bin/env ruby -w
2
+ require 'rmagick'
3
3
 
4
4
  # Demonstrate the affine primitive. Transform the
5
5
  # coordinate space to put the origin in the lower
@@ -43,6 +43,6 @@ text_gc.text(max_x-20, max_y-16, "'+x'")
43
43
  text_gc.text(12, 15, "'+y'")
44
44
  text_gc.draw(imgl)
45
45
 
46
- imgl.border!(1, 1, "lightcyan2")
46
+ imgl.border!(1, 1, 'lightcyan2')
47
47
 
48
- imgl.write("affine.gif")
48
+ imgl.write('affine.gif')
@@ -1,9 +1,9 @@
1
- #! /usr/local/bin/ruby -w
2
- require 'RMagick'
1
+ #!/usr/bin/env ruby -w
2
+ require 'rmagick'
3
3
 
4
4
  # Demonstrate the Image#affine_transform method
5
5
 
6
- img = Magick::Image.read("images/Flower_Hat.jpg").first
6
+ img = Magick::Image.read('images/Flower_Hat.jpg').first
7
7
 
8
8
  # Construct a simple affine matrix
9
9
  flipflop = Magick::AffineMatrix.new(1, Math::PI/6, Math::PI/6, 1, 0, 0)
@@ -15,6 +15,6 @@ img = img.affine_transform(flipflop)
15
15
  # and write it to a JPEG file.
16
16
  img.scale!(250.0/img.rows)
17
17
  img = img.matte_replace(0,0)
18
- img.write("affine_transform.jpg")
18
+ img.write('affine_transform.jpg')
19
19
 
20
20
  exit
@@ -1,7 +1,7 @@
1
- #! /usr/local/bin/ruby -w
2
- require 'RMagick'
1
+ #!/usr/bin/env ruby -w
2
+ require 'rmagick'
3
3
 
4
- i = Magick::Image.new(300, 220, Magick::HatchFill.new("white","lightcyan2"))
4
+ i = Magick::Image.new(300, 220, Magick::HatchFill.new('white','lightcyan2'))
5
5
  gc = Magick::Draw.new
6
6
 
7
7
  # Draw the border rectangle.
@@ -21,19 +21,19 @@ gc.circle(146, 50, 146+3, 50)
21
21
  gc.font_weight(Magick::NormalWeight)
22
22
  gc.font_style(Magick::NormalStyle)
23
23
  gc.stroke('transparent')
24
- gc.fill("black")
24
+ gc.fill('black')
25
25
  gc.fill_opacity(1)
26
26
 
27
27
  # xMagick recognizes the braces as delimiters.
28
28
  gc.gravity(Magick::NorthWestGravity)
29
- gc.text(42, 37, "{40, 50}")
30
- gc.text(188, 108, "{0 degrees}")
29
+ gc.text(42, 37, '{40, 50}')
30
+ gc.text(188, 108, '{0 degrees}')
31
31
 
32
32
  gc.gravity(Magick::SouthEastGravity)
33
- gc.text(300-250, 220-195, "{250, 180}")
33
+ gc.text(300-250, 220-195, '{250, 180}')
34
34
 
35
35
  gc.gravity(Magick::NorthGravity)
36
- gc.text(0, 67, "{270 degrees}")
36
+ gc.text(0, 67, '{270 degrees}')
37
37
 
38
38
  # Draw the arc
39
39
  gc.fill_opacity(0)
@@ -43,7 +43,7 @@ gc.arc(40, 50, 250,180, 0, 270)
43
43
  # Draw on the canvas
44
44
  gc.draw(i)
45
45
 
46
- i.border!(1,1, "lightcyan2")
46
+ i.border!(1,1, 'lightcyan2')
47
47
 
48
48
  #i.display
49
- i.write("arc.gif")
49
+ i.write('arc.gif')
@@ -1,5 +1,5 @@
1
- #! /usr/local/bin/ruby -w
2
- require 'RMagick'
1
+ #!/usr/bin/env ruby -w
2
+ require 'rmagick'
3
3
 
4
4
  # Demonstrate the "path" drawing primitive.
5
5
 
@@ -20,14 +20,13 @@ gc.path('M97.5,87.5 v-75 a75,75 0 0,0 -75,75 z')
20
20
  gc.fill_opacity(0)
21
21
  gc.stroke('#00cd00')
22
22
  gc.stroke_width(3)
23
- gc.path('M200,175 l 25,-12.5 ' +
24
- 'a12.5,12.5 -15 0,1 25,-12.5 l 25,-12.5 ' +
25
- 'a12.5,25 -15 0,1 25,-12.5 l 25,-12.5 ' +
26
- 'a12.5,37.5 -15 0,1 25,-12.5 l 25,-12.5 ' +
23
+ gc.path('M200,175 l 25,-12.5 ' \
24
+ 'a12.5,12.5 -15 0,1 25,-12.5 l 25,-12.5 ' \
25
+ 'a12.5,25 -15 0,1 25,-12.5 l 25,-12.5 ' \
26
+ 'a12.5,37.5 -15 0,1 25,-12.5 l 25,-12.5 ' \
27
27
  'a12.5,50 -15 0,1 25,-12.5 l 25,-12.5')
28
28
 
29
29
  gc.draw imgl
30
- imgl.border!(1,1, "lightcyan2")
30
+ imgl.border!(1,1, 'lightcyan2')
31
31
 
32
32
  imgl.write('arcpath.gif')
33
-
@@ -3,26 +3,26 @@ require 'rvg/rvg'
3
3
  Magick::RVG.dpi = 90
4
4
 
5
5
  rvg = Magick::RVG.new(12.cm, 5.25.cm).viewbox(0, 0, 1200, 400) do |canvas|
6
- canvas.title = "Example arcs01 - arc commands in path data"
7
- canvas.desc = <<-END_DESC
6
+ canvas.title = 'Example arcs01 - arc commands in path data'
7
+ canvas.desc = <<-END_DESC
8
8
  Picture of a pie chart with two pie wedges and a picture
9
9
  of a line with arc blips
10
10
  END_DESC
11
- canvas.background_fill = 'white'
12
- canvas.rect(1196, 395, 1, 1).styles(:fill=>'none', :stroke=>'blue', :stroke_width=>1)
11
+ canvas.background_fill = 'white'
12
+ canvas.rect(1196, 395, 1, 1).styles(:fill=>'none', :stroke=>'blue', :stroke_width=>1)
13
13
 
14
- canvas.path("M300,200 h-150 a150,150 0 1,0 150,-150 z").
15
- styles(:fill=>'red', :stroke=>'blue', :stroke_width=>5)
16
- canvas.path("M275,175 v-150 a150,150 0 0,0 -150,150 z").
17
- styles(:fill=>'yellow', :stroke=>'blue', :stroke_width=>5)
18
- canvas.path(<<-END_PATH
14
+ canvas.path('M300,200 h-150 a150,150 0 1,0 150,-150 z')
15
+ .styles(:fill=>'red', :stroke=>'blue', :stroke_width=>5)
16
+ canvas.path('M275,175 v-150 a150,150 0 0,0 -150,150 z')
17
+ .styles(:fill=>'yellow', :stroke=>'blue', :stroke_width=>5)
18
+ canvas.path(<<-END_PATH
19
19
  M600,350 l 50,-25
20
20
  a25,25 -30 0,1 50,-25 l 50,-25
21
21
  a25,50 -30 0,1 50,-25 l 50,-25
22
22
  a25,75 -30 0,1 50,-25 l 50,-25
23
23
  a25,100 -30 0,1 50,-25 l 50,-25
24
24
  END_PATH
25
- ).styles(:fill=>'none', :stroke=>'red', :stroke_width=>5)
25
+ ).styles(:fill=>'none', :stroke=>'red', :stroke_width=>5)
26
26
  end
27
27
 
28
28
  rvg.draw.write('arcs01.gif')
@@ -6,56 +6,54 @@ PathStyles = {:fill=>'none', :stroke=>'red', :stroke_width=>6}
6
6
  BaseEllipsesStyles = {:font_size=>20, :font_family=>'Verdana',:fill=>'none', :stroke=>'#888', :stroke_width=>2}
7
7
 
8
8
  rvg = Magick::RVG.new(12.cm, (5.25).cm).viewbox(0, 0, 1200, 525) do |canvas|
9
- canvas.title = "Example arcs02 - arc options in paths"
10
- canvas.desc = <<-END_DESC
9
+ canvas.title = 'Example arcs02 - arc options in paths'
10
+ canvas.desc = <<-END_DESC
11
11
  Pictures showing the result of setting
12
12
  large-arc-flag and sweep-flag to the four
13
13
  possible combinations of 0 and 1.
14
14
  END_DESC
15
- canvas.background_fill = 'white'
15
+ canvas.background_fill = 'white'
16
16
 
17
- base_ellipses = Magick::RVG::Group.new.styles(BaseEllipsesStyles) do |base|
18
- base.ellipse(100, 50, 125, 125)
19
- base.ellipse(100, 50, 225, 75)
20
- base.text(35, 70, "Arc start")
21
- base.text(225, 145, "Arc end")
22
- end
23
-
24
- canvas.rect(1196, 522, 1, 1).styles(:fill=>'none', :stroke=>'blue', :stroke_width=>1)
25
-
26
- canvas.g.styles(:font_size=>30, :font_family=>'Verdana', :font_weight=>'normal', :font_style=>'normal') do |grp|
17
+ base_ellipses = Magick::RVG::Group.new.styles(BaseEllipsesStyles) do |base|
18
+ base.ellipse(100, 50, 125, 125)
19
+ base.ellipse(100, 50, 225, 75)
20
+ base.text(35, 70, 'Arc start')
21
+ base.text(225, 145, 'Arc end')
22
+ end
27
23
 
28
- grp.use(base_ellipses)
24
+ canvas.rect(1196, 522, 1, 1).styles(:fill=>'none', :stroke=>'blue', :stroke_width=>1)
29
25
 
30
- grp.g.translate(400,0) do |grp2|
31
- grp2.text(50, 210, 'large-arc-flag=0')
32
- grp2.text(50, 250, 'sweep-flag=0')
33
- grp2.use(base_ellipses)
34
- grp2.path("M 125,75 a100,50 0 0,0 100,50").styles(PathStyles)
35
- end
26
+ canvas.g.styles(:font_size=>30, :font_family=>'Verdana', :font_weight=>'normal', :font_style=>'normal') do |grp|
27
+ grp.use(base_ellipses)
36
28
 
37
- grp.g.translate(800,0) do |grp2|
38
- grp2.text(50, 210, 'large-arc-flag=0')
39
- grp2.text(50, 250, 'sweep-flag=1')
40
- grp2.use(base_ellipses)
41
- grp2.path("M 125,75 a100,50 0 0,1 100,50").styles(PathStyles)
42
- end
29
+ grp.g.translate(400,0) do |grp2|
30
+ grp2.text(50, 210, 'large-arc-flag=0')
31
+ grp2.text(50, 250, 'sweep-flag=0')
32
+ grp2.use(base_ellipses)
33
+ grp2.path('M 125,75 a100,50 0 0,0 100,50').styles(PathStyles)
34
+ end
43
35
 
44
- grp.g.translate(400, 250) do |grp2|
45
- grp2.text(50, 210, 'large-arc-flag=1')
46
- grp2.text(50, 250, 'sweep-flag=0')
47
- grp2.use(base_ellipses)
48
- grp2.path("M 125,75 a100,50 0 1,0 100,50").styles(PathStyles)
49
- end
36
+ grp.g.translate(800,0) do |grp2|
37
+ grp2.text(50, 210, 'large-arc-flag=0')
38
+ grp2.text(50, 250, 'sweep-flag=1')
39
+ grp2.use(base_ellipses)
40
+ grp2.path('M 125,75 a100,50 0 0,1 100,50').styles(PathStyles)
41
+ end
50
42
 
51
- grp.g.translate(800, 250) do |grp2|
52
- grp2.text(50, 210, 'large-arc-flag=1')
53
- grp2.text(50, 250, 'sweep-flag=1')
54
- grp2.use(base_ellipses)
55
- grp2.path("M 125,75 a100,50 0 1,1 100,50").styles(PathStyles)
56
- end
43
+ grp.g.translate(400, 250) do |grp2|
44
+ grp2.text(50, 210, 'large-arc-flag=1')
45
+ grp2.text(50, 250, 'sweep-flag=0')
46
+ grp2.use(base_ellipses)
47
+ grp2.path('M 125,75 a100,50 0 1,0 100,50').styles(PathStyles)
48
+ end
57
49
 
50
+ grp.g.translate(800, 250) do |grp2|
51
+ grp2.text(50, 210, 'large-arc-flag=1')
52
+ grp2.text(50, 250, 'sweep-flag=1')
53
+ grp2.use(base_ellipses)
54
+ grp2.path('M 125,75 a100,50 0 1,1 100,50').styles(PathStyles)
58
55
  end
56
+ end
59
57
  end
60
58
 
61
59
  rvg.draw.write('arcs02.gif')