rmagick 2.13.4 → 2.16.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 (281) hide show
  1. checksums.yaml +4 -4
  2. data/.editorconfig +14 -0
  3. data/.hound.yml +2 -0
  4. data/.rspec +1 -0
  5. data/.rubocop.yml +340 -0
  6. data/.simplecov +27 -0
  7. data/.travis.yml +29 -12
  8. data/CHANGELOG.md +915 -0
  9. data/CODE_OF_CONDUCT.md +13 -0
  10. data/CONTRIBUTING.md +31 -3
  11. data/Gemfile +3 -0
  12. data/README.textile +94 -4
  13. data/Rakefile +57 -45
  14. data/before_install_linux.sh +26 -6
  15. data/deprecated/RMagick.rb +6 -0
  16. data/doc/comtasks.html +1 -1
  17. data/doc/draw.html +7 -4
  18. data/doc/ex/InitialCoords.rb +16 -17
  19. data/doc/ex/NewCoordSys.rb +21 -23
  20. data/doc/ex/OrigCoordSys.rb +8 -10
  21. data/doc/ex/PreserveAspectRatio.rb +182 -183
  22. data/doc/ex/RotateScale.rb +27 -28
  23. data/doc/ex/Skew.rb +27 -27
  24. data/doc/ex/Use01.rb +7 -8
  25. data/doc/ex/Use02.rb +11 -12
  26. data/doc/ex/Use03.rb +7 -7
  27. data/doc/ex/ViewBox.rb +16 -18
  28. data/doc/ex/adaptive_threshold.rb +4 -5
  29. data/doc/ex/add_noise.rb +4 -5
  30. data/doc/ex/affine.rb +4 -4
  31. data/doc/ex/affine_transform.rb +4 -4
  32. data/doc/ex/arc.rb +10 -10
  33. data/doc/ex/arcpath.rb +7 -8
  34. data/doc/ex/arcs01.rb +10 -10
  35. data/doc/ex/arcs02.rb +36 -38
  36. data/doc/ex/average.rb +5 -5
  37. data/doc/ex/axes.rb +4 -4
  38. data/doc/ex/baseline_shift01.rb +11 -12
  39. data/doc/ex/bilevel_channel.rb +2 -3
  40. data/doc/ex/blur_image.rb +2 -2
  41. data/doc/ex/border.rb +2 -2
  42. data/doc/ex/bounding_box.rb +9 -11
  43. data/doc/ex/cbezier1.rb +3 -4
  44. data/doc/ex/cbezier2.rb +3 -4
  45. data/doc/ex/cbezier3.rb +3 -4
  46. data/doc/ex/cbezier4.rb +3 -4
  47. data/doc/ex/cbezier5.rb +2 -3
  48. data/doc/ex/cbezier6.rb +3 -3
  49. data/doc/ex/channel.rb +10 -11
  50. data/doc/ex/charcoal.rb +2 -2
  51. data/doc/ex/chop.rb +2 -2
  52. data/doc/ex/circle.rb +3 -3
  53. data/doc/ex/circle01.rb +6 -7
  54. data/doc/ex/clip_path.rb +12 -12
  55. data/doc/ex/coalesce.rb +32 -35
  56. data/doc/ex/color_fill_to_border.rb +6 -6
  57. data/doc/ex/color_floodfill.rb +2 -2
  58. data/doc/ex/color_histogram.rb +17 -18
  59. data/doc/ex/color_reset.rb +2 -2
  60. data/doc/ex/colorize.rb +2 -2
  61. data/doc/ex/colors.rb +30 -30
  62. data/doc/ex/compose_mask.rb +8 -9
  63. data/doc/ex/composite.rb +14 -16
  64. data/doc/ex/composite_layers.rb +15 -15
  65. data/doc/ex/composite_tiled.rb +5 -7
  66. data/doc/ex/contrast.rb +12 -12
  67. data/doc/ex/crop.rb +3 -3
  68. data/doc/ex/crop_with_gravity.rb +13 -17
  69. data/doc/ex/cubic01.rb +18 -20
  70. data/doc/ex/cubic02.rb +64 -67
  71. data/doc/ex/cycle_colormap.rb +2 -2
  72. data/doc/ex/dissolve.rb +2 -3
  73. data/doc/ex/drawcomp.rb +34 -34
  74. data/doc/ex/drop_shadow.rb +8 -8
  75. data/doc/ex/edge.rb +2 -2
  76. data/doc/ex/ellipse.rb +4 -4
  77. data/doc/ex/ellipse01.rb +10 -11
  78. data/doc/ex/emboss.rb +2 -2
  79. data/doc/ex/enhance.rb +2 -2
  80. data/doc/ex/equalize.rb +2 -2
  81. data/doc/ex/evenodd.rb +31 -32
  82. data/doc/ex/fill_pattern.rb +12 -15
  83. data/doc/ex/flatten_images.rb +13 -13
  84. data/doc/ex/flip.rb +2 -2
  85. data/doc/ex/flop.rb +2 -2
  86. data/doc/ex/font_styles.rb +21 -23
  87. data/doc/ex/fonts.rb +14 -14
  88. data/doc/ex/frame.rb +3 -3
  89. data/doc/ex/gaussian_blur.rb +2 -2
  90. data/doc/ex/get_multiline_type_metrics.rb +6 -7
  91. data/doc/ex/get_pixels.rb +13 -14
  92. data/doc/ex/get_type_metrics.rb +26 -31
  93. data/doc/ex/gradientfill.rb +12 -12
  94. data/doc/ex/grav.rb +4 -5
  95. data/doc/ex/gravity.rb +61 -60
  96. data/doc/ex/group.rb +16 -16
  97. data/doc/ex/hatchfill.rb +10 -10
  98. data/doc/ex/image.rb +29 -31
  99. data/doc/ex/implode.rb +17 -17
  100. data/doc/ex/level.rb +2 -2
  101. data/doc/ex/level_colors.rb +4 -4
  102. data/doc/ex/line.rb +4 -5
  103. data/doc/ex/line01.rb +11 -13
  104. data/doc/ex/mask.rb +7 -8
  105. data/doc/ex/matte_fill_to_border.rb +2 -3
  106. data/doc/ex/matte_floodfill.rb +2 -3
  107. data/doc/ex/matte_replace.rb +2 -3
  108. data/doc/ex/median_filter.rb +2 -2
  109. data/doc/ex/modulate.rb +2 -2
  110. data/doc/ex/mono.rb +4 -4
  111. data/doc/ex/morph.rb +7 -8
  112. data/doc/ex/mosaic.rb +15 -15
  113. data/doc/ex/motion_blur.rb +2 -2
  114. data/doc/ex/negate.rb +2 -2
  115. data/doc/ex/negate_channel.rb +2 -2
  116. data/doc/ex/nested_rvg.rb +11 -11
  117. data/doc/ex/nonzero.rb +31 -32
  118. data/doc/ex/normalize.rb +2 -2
  119. data/doc/ex/oil_paint.rb +2 -2
  120. data/doc/ex/opacity.rb +3 -3
  121. data/doc/ex/ordered_dither.rb +2 -2
  122. data/doc/ex/path.rb +4 -5
  123. data/doc/ex/pattern1.rb +10 -10
  124. data/doc/ex/pattern2.rb +7 -7
  125. data/doc/ex/polaroid.rb +13 -14
  126. data/doc/ex/polygon.rb +6 -7
  127. data/doc/ex/polygon01.rb +10 -12
  128. data/doc/ex/polyline.rb +4 -5
  129. data/doc/ex/polyline01.rb +11 -13
  130. data/doc/ex/posterize.rb +2 -2
  131. data/doc/ex/preview.rb +3 -4
  132. data/doc/ex/qbezierpath.rb +5 -5
  133. data/doc/ex/quad01.rb +23 -25
  134. data/doc/ex/quantize-m.rb +5 -5
  135. data/doc/ex/radial_blur.rb +2 -2
  136. data/doc/ex/raise.rb +2 -2
  137. data/doc/ex/random_threshold_channel.rb +2 -2
  138. data/doc/ex/rect01.rb +6 -7
  139. data/doc/ex/rect02.rb +9 -11
  140. data/doc/ex/rectangle.rb +3 -4
  141. data/doc/ex/reduce_noise.rb +2 -2
  142. data/doc/ex/remap.rb +7 -8
  143. data/doc/ex/remap_images.rb +9 -11
  144. data/doc/ex/resize_to_fill.rb +3 -5
  145. data/doc/ex/resize_to_fit.rb +3 -5
  146. data/doc/ex/roll.rb +2 -2
  147. data/doc/ex/rotate.rb +6 -7
  148. data/doc/ex/rotate_f.rb +2 -2
  149. data/doc/ex/roundrect.rb +4 -5
  150. data/doc/ex/rubyname.rb +11 -11
  151. data/doc/ex/rvg_clippath.rb +5 -7
  152. data/doc/ex/rvg_linecap.rb +25 -26
  153. data/doc/ex/rvg_linejoin.rb +25 -26
  154. data/doc/ex/rvg_opacity.rb +10 -11
  155. data/doc/ex/rvg_pattern.rb +15 -15
  156. data/doc/ex/rvg_stroke_dasharray.rb +6 -7
  157. data/doc/ex/segment.rb +2 -2
  158. data/doc/ex/sepiatone.rb +2 -3
  159. data/doc/ex/shade.rb +2 -2
  160. data/doc/ex/shadow.rb +2 -3
  161. data/doc/ex/shave.rb +2 -2
  162. data/doc/ex/shear.rb +3 -3
  163. data/doc/ex/sketch.rb +2 -3
  164. data/doc/ex/skewx.rb +4 -5
  165. data/doc/ex/skewy.rb +3 -3
  166. data/doc/ex/smile.rb +113 -113
  167. data/doc/ex/solarize.rb +2 -2
  168. data/doc/ex/sparse_color.rb +29 -30
  169. data/doc/ex/splice.rb +2 -3
  170. data/doc/ex/spread.rb +2 -2
  171. data/doc/ex/stegano.rb +34 -34
  172. data/doc/ex/stroke_dasharray.rb +4 -5
  173. data/doc/ex/stroke_fill.rb +4 -5
  174. data/doc/ex/stroke_linecap.rb +3 -3
  175. data/doc/ex/stroke_linejoin.rb +3 -3
  176. data/doc/ex/stroke_width.rb +3 -3
  177. data/doc/ex/swirl.rb +2 -2
  178. data/doc/ex/text.rb +4 -4
  179. data/doc/ex/text01.rb +7 -8
  180. data/doc/ex/text_align.rb +2 -2
  181. data/doc/ex/text_antialias.rb +9 -10
  182. data/doc/ex/text_styles.rb +11 -13
  183. data/doc/ex/text_undercolor.rb +2 -2
  184. data/doc/ex/texture_fill_to_border.rb +6 -6
  185. data/doc/ex/texture_floodfill.rb +2 -2
  186. data/doc/ex/texturefill.rb +10 -11
  187. data/doc/ex/threshold.rb +2 -2
  188. data/doc/ex/to_blob.rb +4 -5
  189. data/doc/ex/translate.rb +6 -6
  190. data/doc/ex/transparent.rb +5 -5
  191. data/doc/ex/transpose.rb +2 -2
  192. data/doc/ex/transverse.rb +2 -2
  193. data/doc/ex/tref01.rb +11 -12
  194. data/doc/ex/triangle01.rb +5 -6
  195. data/doc/ex/trim.rb +1 -2
  196. data/doc/ex/tspan01.rb +8 -9
  197. data/doc/ex/tspan02.rb +9 -11
  198. data/doc/ex/tspan03.rb +9 -11
  199. data/doc/ex/unsharp_mask.rb +2 -2
  200. data/doc/ex/viewex.rb +19 -21
  201. data/doc/ex/vignette.rb +2 -2
  202. data/doc/ex/watermark.rb +15 -16
  203. data/doc/ex/wave.rb +2 -2
  204. data/doc/ex/wet_floor.rb +17 -18
  205. data/doc/ex/writing_mode01.rb +8 -9
  206. data/doc/ex/writing_mode02.rb +8 -8
  207. data/doc/ilist.html +1 -1
  208. data/doc/usage.html +8 -8
  209. data/examples/constitute.rb +6 -6
  210. data/examples/crop_with_gravity.rb +13 -17
  211. data/examples/demo.rb +305 -305
  212. data/examples/describe.rb +27 -28
  213. data/examples/find_similar_region.rb +16 -16
  214. data/examples/histogram.rb +228 -232
  215. data/examples/identify.rb +165 -167
  216. data/examples/image_opacity.rb +4 -4
  217. data/examples/import_export.rb +10 -10
  218. data/examples/pattern_fill.rb +9 -9
  219. data/examples/rotating_text.rb +13 -14
  220. data/examples/spinner.rb +18 -19
  221. data/examples/thumbnail.rb +13 -14
  222. data/examples/vignette.rb +8 -9
  223. data/ext/RMagick/extconf.rb +489 -367
  224. data/ext/RMagick/rmagick.c +11 -4
  225. data/ext/RMagick/rmagick.h +4 -0
  226. data/ext/RMagick/rmdraw.c +49 -18
  227. data/ext/RMagick/rmenum.c +18 -7
  228. data/ext/RMagick/rmfill.c +4 -1
  229. data/ext/RMagick/rmilist.c +49 -13
  230. data/ext/RMagick/rmimage.c +196 -59
  231. data/ext/RMagick/rminfo.c +33 -10
  232. data/ext/RMagick/rmmain.c +18 -6
  233. data/ext/RMagick/rmmontage.c +12 -4
  234. data/ext/RMagick/rmpixel.c +18 -5
  235. data/ext/RMagick/rmstruct.c +108 -31
  236. data/ext/RMagick/rmutil.c +50 -26
  237. data/lib/rmagick/version.rb +4 -3
  238. data/lib/rmagick_internal.rb +1159 -1176
  239. data/lib/rvg/clippath.rb +36 -39
  240. data/lib/rvg/container.rb +115 -124
  241. data/lib/rvg/deep_equal.rb +46 -50
  242. data/lib/rvg/describable.rb +41 -47
  243. data/lib/rvg/embellishable.rb +384 -410
  244. data/lib/rvg/misc.rb +697 -714
  245. data/lib/rvg/paint.rb +42 -47
  246. data/lib/rvg/pathdata.rb +120 -125
  247. data/lib/rvg/rvg.rb +213 -213
  248. data/lib/rvg/stretchable.rb +159 -162
  249. data/lib/rvg/stylable.rb +109 -117
  250. data/lib/rvg/text.rb +9 -24
  251. data/lib/rvg/transformable.rb +120 -127
  252. data/lib/rvg/units.rb +58 -61
  253. data/rmagick.gemspec +46 -15
  254. data/spec/rmagick/ImageList1_spec.rb +24 -0
  255. data/spec/rmagick/draw_spec.rb +156 -0
  256. data/spec/rmagick/image/blue_shift_spec.rb +16 -0
  257. data/spec/rmagick/image/composite_spec.rb +140 -0
  258. data/spec/rmagick/image/constitute_spec.rb +15 -0
  259. data/spec/rmagick/image/dispatch_spec.rb +18 -0
  260. data/spec/rmagick/image/from_blob_spec.rb +14 -0
  261. data/spec/rmagick/image/ping_spec.rb +14 -0
  262. data/spec/rmagick/image/properties_spec.rb +29 -0
  263. data/spec/spec_helper.rb +4 -0
  264. data/test/Image1.rb +529 -727
  265. data/test/Image2.rb +1291 -1299
  266. data/test/Image3.rb +978 -981
  267. data/test/ImageList1.rb +7 -9
  268. data/test/ImageList2.rb +346 -350
  269. data/test/Image_attributes.rb +683 -686
  270. data/test/Import_Export.rb +25 -30
  271. data/test/Info.rb +339 -343
  272. data/test/Magick.rb +250 -253
  273. data/test/Pixel.rb +107 -110
  274. data/test/Preview.rb +48 -53
  275. data/test/test_all_basic.rb +15 -11
  276. data/test/tmpnam_test.rb +3 -3
  277. data/wercker.yml +10 -0
  278. metadata +77 -10
  279. data/ChangeLog +0 -816
  280. data/lib/RMagick.rb +0 -1
  281. data/test/Draw.rb +0 -121
@@ -1,205 +1,204 @@
1
1
  require 'rvg/rvg'
2
2
 
3
3
  rvg = Magick::RVG.new(450, 300) do |canvas|
4
- canvas.desc = 'Example Preserve Aspect Ratio'
5
- canvas.background_fill = 'white'
6
-
7
- canvas.rect(448, 298, 1, 1).styles(:fill=>'none', :stroke=>'blue')
8
-
9
- # Define the smiley-face
10
- smile = Magick::RVG::Group.new do |grp|
11
- grp.translate(0, 5)
12
- grp.circle(10, 15, 15).styles(:fill=>'yellow', :stroke=>'none')
13
- grp.circle(1.5, 12, 12).styles(:fill=>'black', :stroke=>'none')
14
- grp.circle(1.5, 17, 12).styles(:fill=>'black', :stroke=>'none')
15
- grp.path("M10 19 A 8 8 0 0 0 20 19").styles(:stroke=>'black', :stroke_width=>2)
4
+ canvas.desc = 'Example Preserve Aspect Ratio'
5
+ canvas.background_fill = 'white'
6
+
7
+ canvas.rect(448, 298, 1, 1).styles(:fill=>'none', :stroke=>'blue')
8
+
9
+ # Define the smiley-face
10
+ smile = Magick::RVG::Group.new do |grp|
11
+ grp.translate(0, 5)
12
+ grp.circle(10, 15, 15).styles(:fill=>'yellow', :stroke=>'none')
13
+ grp.circle(1.5, 12, 12).styles(:fill=>'black', :stroke=>'none')
14
+ grp.circle(1.5, 17, 12).styles(:fill=>'black', :stroke=>'none')
15
+ grp.path('M10 19 A 8 8 0 0 0 20 19').styles(:stroke=>'black', :stroke_width=>2)
16
+ end
17
+
18
+ viewport1 = Magick::RVG::Group.new do |grp|
19
+ grp.rect(49, 29, 0.5, 0.5).styles(:fill => 'none', :stroke => 'blue')
20
+ end
21
+
22
+ viewport2 = Magick::RVG::Group.new do |grp|
23
+ grp.rect(29, 39, 0.5, 0.5).styles(:fill=>'black', :stroke=>'red')
24
+ end
25
+
26
+ # SVG to fit
27
+ grp = canvas.g.styles(:font_size=>9) do |grp|
28
+ grp.text(10, 30, 'SVG to fit')
29
+ grp.g.translate(20, 40) do |grp2|
30
+ grp2.use(viewport2)
31
+ grp2.use(smile)
16
32
  end
17
33
 
18
- viewport1 = Magick::RVG::Group.new do |grp|
19
- grp.rect(49, 29, 0.5, 0.5).styles(:fill => 'none', :stroke => 'blue')
34
+ # Viewport 1
35
+ grp.g.translate(10, 120) do |grp2|
36
+ grp2.use(viewport1)
20
37
  end
38
+ grp.text(10, 110, 'Viewport 1')
21
39
 
22
- viewport2 = Magick::RVG::Group.new do |grp|
23
- grp.rect(29, 39, 0.5, 0.5).styles(:fill=>'black', :stroke=>'red')
40
+ # Viewport 2
41
+ grp.g.translate(20, 190) do |grp2|
42
+ grp2.rect(29, 50, 0.5, 0.5).styles(:fill => 'none', :stroke => 'blue')
24
43
  end
25
-
26
- # SVG to fit
27
- grp = canvas.g.styles(:font_size=>9) do |grp|
28
- grp.text(10, 30, "SVG to fit")
29
- grp.g.translate(20, 40) do |grp2|
30
- grp2.use(viewport2)
31
- grp2.use(smile)
44
+ grp.text(10, 180, 'Viewport 2')
45
+
46
+ # meet-group-1
47
+ grp.g.translate(100, 60) do |grp2|
48
+ grp2.text(0, -30, '--------------- meet ---------------')
49
+ grp2.g do |grp3|
50
+ grp3.text(0, -10, 'xMin*')
51
+ grp3.use(viewport1)
52
+
53
+ # xMin
54
+ grp3.rvg(50, 30).viewbox(0,0,30,40).preserve_aspect_ratio('xMinYMin', 'meet') do |canvas2|
55
+ canvas2.rect(29, 39, 0.5, 0.5).styles(:fill => 'black', :stroke => 'red')
56
+ canvas2.use(smile)
32
57
  end
33
-
34
- # Viewport 1
35
- grp.g.translate(10, 120) do |grp2|
36
- grp2.use(viewport1)
58
+ end
59
+
60
+ # xMid
61
+ grp2.g.translate(70, 0) do |grp3|
62
+ grp3.text(0, -10, 'xMid*')
63
+ grp3.use(viewport1)
64
+ grp3.rvg(50, 30).viewbox(0, 0, 30, 40).preserve_aspect_ratio('xMidYMid', 'meet') do |canvas2|
65
+ canvas2.rect(29, 39, 0.5, 0.5).styles(:fill => 'black', :stroke => 'red')
66
+ canvas2.use(smile)
67
+ end
68
+ end
69
+
70
+ # xMax
71
+ grp2.g.translate(0, 70) do |grp3|
72
+ grp3.text(0, -10, 'xMax*')
73
+ grp3.use(viewport1)
74
+ grp3.rvg(50, 30).viewbox(0,0,30,40).preserve_aspect_ratio('xMaxYMax', 'meet') do |canvas2|
75
+ canvas2.rect(29, 39, 0.5, 0.5).styles(:fill => 'black', :stroke => 'red')
76
+ canvas2.use(smile)
37
77
  end
38
- grp.text(10, 110, 'Viewport 1')
78
+ end
79
+ end
39
80
 
40
- # Viewport 2
41
- grp.g.translate(20, 190) do |grp2|
42
- grp2.rect(29, 50, 0.5, 0.5).styles(:fill => 'none', :stroke => 'blue')
81
+ # meet-group-2
82
+ grp.g.translate(250, 60) do |grp2|
83
+ grp2.text(0, -30, '--------------- meet ---------------')
84
+
85
+ # xMin
86
+ grp2.g do |grp3|
87
+ grp3.text(0, -10, '*YMin')
88
+ grp3.rect(29, 59, 0.5, 0.5).styles(:fill => 'none', :stroke => 'blue')
89
+ grp3.rvg(30, 60).viewbox(0,0,30,40).preserve_aspect_ratio('xMinYMin', 'meet') do |canvas2|
90
+ canvas2.use(viewport2)
91
+ canvas2.use(smile)
43
92
  end
44
- grp.text(10, 180, 'Viewport 2')
45
-
46
- # meet-group-1
47
- grp.g.translate(100, 60) do |grp2|
48
- grp2.text(0, -30, "--------------- meet ---------------")
49
- grp2.g do |grp3|
50
- grp3.text(0, -10, "xMin*")
51
- grp3.use(viewport1)
52
-
53
- # xMin
54
- grp3.rvg(50, 30).viewbox(0,0,30,40).preserve_aspect_ratio('xMinYMin', 'meet') do |canvas2|
55
- canvas2.rect(29, 39, 0.5, 0.5).styles(:fill => 'black', :stroke => 'red')
56
- canvas2.use(smile)
57
- end
58
- end
59
-
60
- # xMid
61
- grp2.g.translate(70, 0) do |grp3|
62
- grp3.text(0, -10, "xMid*")
63
- grp3.use(viewport1)
64
- grp3.rvg(50, 30).viewbox(0, 0, 30, 40).preserve_aspect_ratio('xMidYMid', 'meet') do |canvas2|
65
- canvas2.rect(29, 39, 0.5, 0.5).styles(:fill => 'black', :stroke => 'red')
66
- canvas2.use(smile)
67
- end
68
- end
69
-
70
- # xMax
71
- grp2.g.translate(0, 70) do |grp3|
72
- grp3.text(0, -10, "xMax*")
73
- grp3.use(viewport1)
74
- grp3.rvg(50, 30).viewbox(0,0,30,40).preserve_aspect_ratio('xMaxYMax', 'meet') do |canvas2|
75
- canvas2.rect(29, 39, 0.5, 0.5).styles(:fill => 'black', :stroke => 'red')
76
- canvas2.use(smile)
77
- end
78
- end
93
+ end
94
+
95
+ # xMid
96
+ grp2.g.translate(50, 0) do |grp3|
97
+ grp3.text(0, -10, '*YMid')
98
+ grp3.rect(29, 59, 0.5, 0.5).styles(:fill => 'none', :stroke => 'blue')
99
+ grp3.rvg(30, 60).viewbox(0, 0, 30, 40).preserve_aspect_ratio('xMidYMid', 'meet') do |canvas2|
100
+ canvas2.use(viewport2)
101
+ canvas2.use(smile)
79
102
  end
80
-
81
- # meet-group-2
82
- grp.g.translate(250, 60) do |grp2|
83
- grp2.text(0, -30, "--------------- meet ---------------")
84
-
85
- # xMin
86
- grp2.g do |grp3|
87
- grp3.text(0, -10, "*YMin")
88
- grp3.rect(29, 59, 0.5, 0.5).styles(:fill => 'none', :stroke => 'blue')
89
- grp3.rvg(30, 60).viewbox(0,0,30,40).preserve_aspect_ratio('xMinYMin', 'meet') do |canvas2|
90
- canvas2.use(viewport2)
91
- canvas2.use(smile)
92
- end
93
- end
94
-
95
- # xMid
96
- grp2.g.translate(50, 0) do |grp3|
97
- grp3.text(0, -10, "*YMid")
98
- grp3.rect(29, 59, 0.5, 0.5).styles(:fill => 'none', :stroke => 'blue')
99
- grp3.rvg(30, 60).viewbox(0, 0, 30, 40).preserve_aspect_ratio('xMidYMid', 'meet') do |canvas2|
100
- canvas2.use(viewport2)
101
- canvas2.use(smile)
102
- end
103
- end
104
-
105
- # xMax
106
- grp2.g.translate(100, 0) do |grp3|
107
- grp3.text(0, -10, "*YMax")
108
- grp3.rect(29, 59, 0.5, 0.5).styles(:fill => 'none', :stroke => 'blue')
109
- grp3.rvg(30, 60).viewbox(0,0,30,40).preserve_aspect_ratio('xMaxYMax', 'meet') do |canvas2|
110
- canvas2.rect(29, 39, 0.5, 0.5).styles(:fill => 'black', :stroke => 'red')
111
- canvas2.use(smile)
112
- end
113
- end
103
+ end
104
+
105
+ # xMax
106
+ grp2.g.translate(100, 0) do |grp3|
107
+ grp3.text(0, -10, '*YMax')
108
+ grp3.rect(29, 59, 0.5, 0.5).styles(:fill => 'none', :stroke => 'blue')
109
+ grp3.rvg(30, 60).viewbox(0,0,30,40).preserve_aspect_ratio('xMaxYMax', 'meet') do |canvas2|
110
+ canvas2.rect(29, 39, 0.5, 0.5).styles(:fill => 'black', :stroke => 'red')
111
+ canvas2.use(smile)
114
112
  end
113
+ end
114
+ end
115
115
 
116
- # slice-group-1
117
- grp.g.translate(100, 220) do |grp2|
118
- grp2.text(0, -30, "--------------- slice ---------------")
119
-
120
- # xMin
121
- grp2.g do |grp3|
122
- grp3.text(0, -10, "xMin*")
123
- grp3.rect(29, 59, 0.5, 0.5).styles(:fill => 'none', :stroke => 'blue')
124
- grp3.rvg(30, 60) do |canvas2|
125
- canvas2.preserve_aspect_ratio('xMinYMin', 'slice')
126
- canvas2.viewbox(0,0,30,40)
127
- canvas2.use(viewport2)
128
- canvas2.use(smile)
129
- end
130
- end
131
-
132
- # xMid
133
- grp2.g do |grp3|
134
- grp3.text(0, -10, "xMid*")
135
- grp3.translate(50, 0)
136
- grp3.rect(29, 59, 0.5, 0.5).styles(:fill => 'none', :stroke => 'blue')
137
- grp3.rvg(30, 60) do |canvas2|
138
- canvas2.preserve_aspect_ratio('xMidYMid', 'slice')
139
- canvas2.viewbox(0,0,30,40)
140
- canvas2.rect(29, 39, 0.5, 0.5).styles(:fill => 'black', :stroke => 'red')
141
- canvas2.use(smile)
142
- end
143
- end
144
-
145
- # xMax
146
- grp2.g do |grp3|
147
- grp3.text(0, -10, "xMax*")
148
- grp3.translate(100, 0)
149
- grp3.rect(29, 59, 0.5, 0.5).styles(:fill => 'none', :stroke => 'blue')
150
- grp3.rvg(30, 60) do |canvas2|
151
- canvas2.preserve_aspect_ratio('xMaxYMax', 'slice')
152
- canvas2.viewbox(0,0,30,40)
153
- canvas2.rect(29, 39, 0.5, 0.5).styles(:fill => 'black', :stroke => 'red')
154
- canvas2.use(smile)
155
- end
156
- end
116
+ # slice-group-1
117
+ grp.g.translate(100, 220) do |grp2|
118
+ grp2.text(0, -30, '--------------- slice ---------------')
119
+
120
+ # xMin
121
+ grp2.g do |grp3|
122
+ grp3.text(0, -10, 'xMin*')
123
+ grp3.rect(29, 59, 0.5, 0.5).styles(:fill => 'none', :stroke => 'blue')
124
+ grp3.rvg(30, 60) do |canvas2|
125
+ canvas2.preserve_aspect_ratio('xMinYMin', 'slice')
126
+ canvas2.viewbox(0,0,30,40)
127
+ canvas2.use(viewport2)
128
+ canvas2.use(smile)
157
129
  end
130
+ end
131
+
132
+ # xMid
133
+ grp2.g do |grp3|
134
+ grp3.text(0, -10, 'xMid*')
135
+ grp3.translate(50, 0)
136
+ grp3.rect(29, 59, 0.5, 0.5).styles(:fill => 'none', :stroke => 'blue')
137
+ grp3.rvg(30, 60) do |canvas2|
138
+ canvas2.preserve_aspect_ratio('xMidYMid', 'slice')
139
+ canvas2.viewbox(0,0,30,40)
140
+ canvas2.rect(29, 39, 0.5, 0.5).styles(:fill => 'black', :stroke => 'red')
141
+ canvas2.use(smile)
142
+ end
143
+ end
144
+
145
+ # xMax
146
+ grp2.g do |grp3|
147
+ grp3.text(0, -10, 'xMax*')
148
+ grp3.translate(100, 0)
149
+ grp3.rect(29, 59, 0.5, 0.5).styles(:fill => 'none', :stroke => 'blue')
150
+ grp3.rvg(30, 60) do |canvas2|
151
+ canvas2.preserve_aspect_ratio('xMaxYMax', 'slice')
152
+ canvas2.viewbox(0,0,30,40)
153
+ canvas2.rect(29, 39, 0.5, 0.5).styles(:fill => 'black', :stroke => 'red')
154
+ canvas2.use(smile)
155
+ end
156
+ end
157
+ end
158
158
 
159
- # slice-group-2
160
- grp.g.translate(250, 200) do |grp2|
161
- grp2.text(0, -30, "--------------- slice ---------------")
162
-
163
- # YMin
164
- grp2.g do |grp3|
165
- grp3.text(0, -10, "*YMin")
166
- grp3.use(viewport1)
167
- grp3.rvg(50, 30) do |canvas2|
168
- canvas2.preserve_aspect_ratio('xMinYMin', 'slice')
169
- canvas2.viewbox(0,0,30,40)
170
- canvas2.rect(29, 39, 0.5, 0.5).styles(:fill => 'black', :stroke => 'red')
171
- canvas2.use(smile)
172
- end
173
- end
174
-
175
- # YMid
176
- grp2.g do |grp3|
177
- grp3.text(0, -10, "*YMid")
178
- grp3.translate(70, 0)
179
- grp3.use(viewport1)
180
- grp3.rvg(50, 30) do |canvas2|
181
- canvas2.preserve_aspect_ratio('xMidYMid', 'slice')
182
- canvas2.viewbox(0,0,30,40)
183
- canvas2.rect(29, 39, 0.5, 0.5).styles(:fill => 'black', :stroke => 'red')
184
- canvas2.use(smile)
185
- end
186
- end
187
-
188
- # YMax
189
- grp2.g do |grp3|
190
- grp3.text(0, -10, "*YMax")
191
- grp3.translate(140, 0)
192
- grp3.use(viewport1)
193
- grp3.rvg(50, 30) do |canvas2|
194
- canvas2.preserve_aspect_ratio('xMaxYMax', 'slice')
195
- canvas2.viewbox(0,0,30,40)
196
- canvas2.rect(29, 39, 0.5, 0.5).styles(:fill => 'black', :stroke => 'red')
197
- canvas2.use(smile)
198
- end
199
- end
159
+ # slice-group-2
160
+ grp.g.translate(250, 200) do |grp2|
161
+ grp2.text(0, -30, '--------------- slice ---------------')
162
+
163
+ # YMin
164
+ grp2.g do |grp3|
165
+ grp3.text(0, -10, '*YMin')
166
+ grp3.use(viewport1)
167
+ grp3.rvg(50, 30) do |canvas2|
168
+ canvas2.preserve_aspect_ratio('xMinYMin', 'slice')
169
+ canvas2.viewbox(0,0,30,40)
170
+ canvas2.rect(29, 39, 0.5, 0.5).styles(:fill => 'black', :stroke => 'red')
171
+ canvas2.use(smile)
200
172
  end
173
+ end
174
+
175
+ # YMid
176
+ grp2.g do |grp3|
177
+ grp3.text(0, -10, '*YMid')
178
+ grp3.translate(70, 0)
179
+ grp3.use(viewport1)
180
+ grp3.rvg(50, 30) do |canvas2|
181
+ canvas2.preserve_aspect_ratio('xMidYMid', 'slice')
182
+ canvas2.viewbox(0,0,30,40)
183
+ canvas2.rect(29, 39, 0.5, 0.5).styles(:fill => 'black', :stroke => 'red')
184
+ canvas2.use(smile)
185
+ end
186
+ end
187
+
188
+ # YMax
189
+ grp2.g do |grp3|
190
+ grp3.text(0, -10, '*YMax')
191
+ grp3.translate(140, 0)
192
+ grp3.use(viewport1)
193
+ grp3.rvg(50, 30) do |canvas2|
194
+ canvas2.preserve_aspect_ratio('xMaxYMax', 'slice')
195
+ canvas2.viewbox(0,0,30,40)
196
+ canvas2.rect(29, 39, 0.5, 0.5).styles(:fill => 'black', :stroke => 'red')
197
+ canvas2.use(smile)
198
+ end
199
+ end
201
200
  end
201
+ end
202
202
  end
203
203
 
204
204
  rvg.draw.write('PreserveAspectRatio.gif')
205
-
@@ -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
-
data/doc/ex/Skew.rb CHANGED
@@ -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')
data/doc/ex/Use01.rb CHANGED
@@ -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
-
data/doc/ex/Use02.rb CHANGED
@@ -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
-
data/doc/ex/Use03.rb CHANGED
@@ -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')
data/doc/ex/ViewBox.rb CHANGED
@@ -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
-