rmagick 1.7.1

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

Potentially problematic release.


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

Files changed (239) hide show
  1. data/ChangeLog +232 -0
  2. data/Makefile.in +28 -0
  3. data/README.html +404 -0
  4. data/README.txt +397 -0
  5. data/configure +8554 -0
  6. data/configure.ac +497 -0
  7. data/doc/comtasks.html +241 -0
  8. data/doc/constants.html +1195 -0
  9. data/doc/css/doc.css +299 -0
  10. data/doc/css/popup.css +34 -0
  11. data/doc/draw.html +3108 -0
  12. data/doc/ex/Adispatch.rb +43 -0
  13. data/doc/ex/Zconstitute.rb +9 -0
  14. data/doc/ex/adaptive_threshold.rb +19 -0
  15. data/doc/ex/add_noise.rb +18 -0
  16. data/doc/ex/affine.rb +48 -0
  17. data/doc/ex/affine_transform.rb +20 -0
  18. data/doc/ex/arc.rb +47 -0
  19. data/doc/ex/arcpath.rb +33 -0
  20. data/doc/ex/average.rb +15 -0
  21. data/doc/ex/axes.rb +64 -0
  22. data/doc/ex/bilevel_channel.rb +20 -0
  23. data/doc/ex/blur_image.rb +12 -0
  24. data/doc/ex/border.rb +10 -0
  25. data/doc/ex/bounding_box.rb +48 -0
  26. data/doc/ex/cbezier1.rb +40 -0
  27. data/doc/ex/cbezier2.rb +40 -0
  28. data/doc/ex/cbezier3.rb +40 -0
  29. data/doc/ex/cbezier4.rb +41 -0
  30. data/doc/ex/cbezier5.rb +41 -0
  31. data/doc/ex/cbezier6.rb +51 -0
  32. data/doc/ex/channel.rb +26 -0
  33. data/doc/ex/channel_threshold.rb +48 -0
  34. data/doc/ex/charcoal.rb +12 -0
  35. data/doc/ex/chop.rb +29 -0
  36. data/doc/ex/circle.rb +31 -0
  37. data/doc/ex/clip_path.rb +56 -0
  38. data/doc/ex/coalesce.rb +60 -0
  39. data/doc/ex/color_fill_to_border.rb +29 -0
  40. data/doc/ex/color_floodfill.rb +28 -0
  41. data/doc/ex/color_histogram.rb +60 -0
  42. data/doc/ex/color_reset.rb +11 -0
  43. data/doc/ex/colorize.rb +16 -0
  44. data/doc/ex/colors.rb +65 -0
  45. data/doc/ex/composite.rb +135 -0
  46. data/doc/ex/contrast.rb +37 -0
  47. data/doc/ex/crop.rb +31 -0
  48. data/doc/ex/crop_with_gravity.rb +46 -0
  49. data/doc/ex/cycle_colormap.rb +21 -0
  50. data/doc/ex/demo.rb +324 -0
  51. data/doc/ex/drawcomp.rb +42 -0
  52. data/doc/ex/drop_shadow.rb +60 -0
  53. data/doc/ex/edge.rb +11 -0
  54. data/doc/ex/ellipse.rb +43 -0
  55. data/doc/ex/emboss.rb +11 -0
  56. data/doc/ex/enhance.rb +28 -0
  57. data/doc/ex/equalize.rb +11 -0
  58. data/doc/ex/flatten_images.rb +38 -0
  59. data/doc/ex/flip.rb +11 -0
  60. data/doc/ex/flop.rb +11 -0
  61. data/doc/ex/fonts.rb +20 -0
  62. data/doc/ex/frame.rb +12 -0
  63. data/doc/ex/gaussian_blur.rb +11 -0
  64. data/doc/ex/get_multiline_type_metrics.rb +53 -0
  65. data/doc/ex/get_pixels.rb +48 -0
  66. data/doc/ex/get_type_metrics.rb +140 -0
  67. data/doc/ex/gradientfill.rb +27 -0
  68. data/doc/ex/grav.rb +44 -0
  69. data/doc/ex/gravity.rb +80 -0
  70. data/doc/ex/hatchfill.rb +27 -0
  71. data/doc/ex/images/Ballerina.jpg +0 -0
  72. data/doc/ex/images/Ballerina3.jpg +0 -0
  73. data/doc/ex/images/Button_0.gif +0 -0
  74. data/doc/ex/images/Button_1.gif +0 -0
  75. data/doc/ex/images/Button_2.gif +0 -0
  76. data/doc/ex/images/Button_3.gif +0 -0
  77. data/doc/ex/images/Button_4.gif +0 -0
  78. data/doc/ex/images/Button_5.gif +0 -0
  79. data/doc/ex/images/Button_6.gif +0 -0
  80. data/doc/ex/images/Button_7.gif +0 -0
  81. data/doc/ex/images/Button_8.gif +0 -0
  82. data/doc/ex/images/Button_9.gif +0 -0
  83. data/doc/ex/images/Button_A.gif +0 -0
  84. data/doc/ex/images/Button_B.gif +0 -0
  85. data/doc/ex/images/Button_C.gif +0 -0
  86. data/doc/ex/images/Button_D.gif +0 -0
  87. data/doc/ex/images/Button_E.gif +0 -0
  88. data/doc/ex/images/Button_F.gif +0 -0
  89. data/doc/ex/images/Button_G.gif +0 -0
  90. data/doc/ex/images/Button_H.gif +0 -0
  91. data/doc/ex/images/Button_I.gif +0 -0
  92. data/doc/ex/images/Button_J.gif +0 -0
  93. data/doc/ex/images/Button_K.gif +0 -0
  94. data/doc/ex/images/Button_L.gif +0 -0
  95. data/doc/ex/images/Button_M.gif +0 -0
  96. data/doc/ex/images/Button_N.gif +0 -0
  97. data/doc/ex/images/Button_O.gif +0 -0
  98. data/doc/ex/images/Button_P.gif +0 -0
  99. data/doc/ex/images/Button_Q.gif +0 -0
  100. data/doc/ex/images/Button_R.gif +0 -0
  101. data/doc/ex/images/Button_S.gif +0 -0
  102. data/doc/ex/images/Button_T.gif +0 -0
  103. data/doc/ex/images/Button_U.gif +0 -0
  104. data/doc/ex/images/Button_V.gif +0 -0
  105. data/doc/ex/images/Button_W.gif +0 -0
  106. data/doc/ex/images/Button_X.gif +0 -0
  107. data/doc/ex/images/Button_Y.gif +0 -0
  108. data/doc/ex/images/Button_Z.gif +0 -0
  109. data/doc/ex/images/Cheetah.jpg +0 -0
  110. data/doc/ex/images/Coffee.wmf +0 -0
  111. data/doc/ex/images/Flower_Hat.jpg +0 -0
  112. data/doc/ex/images/Gold_Statue.jpg +0 -0
  113. data/doc/ex/images/Hot_Air_Balloons.jpg +0 -0
  114. data/doc/ex/images/Hot_Air_Balloons_H.jpg +0 -0
  115. data/doc/ex/images/No.wmf +0 -0
  116. data/doc/ex/images/Polynesia.jpg +0 -0
  117. data/doc/ex/images/Red_Rocks.jpg +0 -0
  118. data/doc/ex/images/Shorts.jpg +0 -0
  119. data/doc/ex/images/Snake.wmf +0 -0
  120. data/doc/ex/images/Violin.jpg +0 -0
  121. data/doc/ex/images/graydient230x6.gif +0 -0
  122. data/doc/ex/images/logo400x83.gif +0 -0
  123. data/doc/ex/images/model.miff +0 -0
  124. data/doc/ex/images/notimplemented.gif +0 -0
  125. data/doc/ex/images/smile.miff +0 -0
  126. data/doc/ex/images/spin.gif +0 -0
  127. data/doc/ex/implode.rb +32 -0
  128. data/doc/ex/level.rb +12 -0
  129. data/doc/ex/level_channel.rb +33 -0
  130. data/doc/ex/line.rb +40 -0
  131. data/doc/ex/map.rb +28 -0
  132. data/doc/ex/map_f.rb +15 -0
  133. data/doc/ex/matte_fill_to_border.rb +42 -0
  134. data/doc/ex/matte_floodfill.rb +35 -0
  135. data/doc/ex/matte_replace.rb +42 -0
  136. data/doc/ex/median_filter.rb +28 -0
  137. data/doc/ex/modulate.rb +11 -0
  138. data/doc/ex/mono.rb +23 -0
  139. data/doc/ex/morph.rb +26 -0
  140. data/doc/ex/mosaic.rb +35 -0
  141. data/doc/ex/motion_blur.rb +11 -0
  142. data/doc/ex/negate.rb +11 -0
  143. data/doc/ex/negate_channel.rb +19 -0
  144. data/doc/ex/normalize.rb +11 -0
  145. data/doc/ex/oil_paint.rb +11 -0
  146. data/doc/ex/opacity.rb +38 -0
  147. data/doc/ex/opaque.rb +14 -0
  148. data/doc/ex/ordered_dither.rb +11 -0
  149. data/doc/ex/path.rb +62 -0
  150. data/doc/ex/pattern1.rb +25 -0
  151. data/doc/ex/pattern2.rb +26 -0
  152. data/doc/ex/polygon.rb +24 -0
  153. data/doc/ex/polyline.rb +23 -0
  154. data/doc/ex/posterize.rb +19 -0
  155. data/doc/ex/preview.rb +16 -0
  156. data/doc/ex/qbezierpath.rb +49 -0
  157. data/doc/ex/quantize-m.rb +25 -0
  158. data/doc/ex/radial_blur.rb +19 -0
  159. data/doc/ex/raise.rb +11 -0
  160. data/doc/ex/random_channel_threshold.rb +17 -0
  161. data/doc/ex/random_threshold_channel.rb +18 -0
  162. data/doc/ex/rectangle.rb +33 -0
  163. data/doc/ex/reduce_noise.rb +28 -0
  164. data/doc/ex/roll.rb +9 -0
  165. data/doc/ex/rotate.rb +43 -0
  166. data/doc/ex/rotate_f.rb +14 -0
  167. data/doc/ex/roundrect.rb +32 -0
  168. data/doc/ex/rubyname.rb +31 -0
  169. data/doc/ex/segment.rb +11 -0
  170. data/doc/ex/shade.rb +11 -0
  171. data/doc/ex/shave.rb +15 -0
  172. data/doc/ex/shear.rb +10 -0
  173. data/doc/ex/skewx.rb +50 -0
  174. data/doc/ex/skewy.rb +45 -0
  175. data/doc/ex/smile.rb +124 -0
  176. data/doc/ex/solarize.rb +11 -0
  177. data/doc/ex/splice.rb +16 -0
  178. data/doc/ex/spread.rb +11 -0
  179. data/doc/ex/stegano.rb +50 -0
  180. data/doc/ex/stroke_dasharray.rb +41 -0
  181. data/doc/ex/stroke_linecap.rb +44 -0
  182. data/doc/ex/stroke_linejoin.rb +48 -0
  183. data/doc/ex/stroke_width.rb +47 -0
  184. data/doc/ex/swirl.rb +17 -0
  185. data/doc/ex/text.rb +32 -0
  186. data/doc/ex/text_align.rb +36 -0
  187. data/doc/ex/text_antialias.rb +33 -0
  188. data/doc/ex/text_undercolor.rb +26 -0
  189. data/doc/ex/texture_fill_to_border.rb +34 -0
  190. data/doc/ex/texture_floodfill.rb +31 -0
  191. data/doc/ex/texturefill.rb +25 -0
  192. data/doc/ex/threshold.rb +13 -0
  193. data/doc/ex/to_blob.rb +14 -0
  194. data/doc/ex/translate.rb +37 -0
  195. data/doc/ex/transparent.rb +38 -0
  196. data/doc/ex/trim.rb +25 -0
  197. data/doc/ex/unsharp_mask.rb +28 -0
  198. data/doc/ex/viewex.rb +36 -0
  199. data/doc/ex/wave.rb +9 -0
  200. data/doc/ilist.html +1592 -0
  201. data/doc/image1.html +3009 -0
  202. data/doc/image2.html +2169 -0
  203. data/doc/image3.html +2815 -0
  204. data/doc/imageattrs.html +1319 -0
  205. data/doc/imusage.html +403 -0
  206. data/doc/index.html +418 -0
  207. data/doc/info.html +949 -0
  208. data/doc/magick.html +439 -0
  209. data/doc/scripts/doc.js +9 -0
  210. data/doc/struct.html +1334 -0
  211. data/doc/usage.html +1318 -0
  212. data/examples/describe.rb +44 -0
  213. data/examples/histogram.rb +289 -0
  214. data/examples/image_opacity.rb +29 -0
  215. data/examples/import_export.rb +31 -0
  216. data/examples/pattern_fill.rb +38 -0
  217. data/examples/rotating_text.rb +47 -0
  218. data/examples/thumbnail.rb +65 -0
  219. data/examples/vignette.rb +79 -0
  220. data/ext/RMagick/MANIFEST +239 -0
  221. data/ext/RMagick/extconf.rb.in +21 -0
  222. data/ext/RMagick/rmagick.h +938 -0
  223. data/ext/RMagick/rmagick_config.h.in +170 -0
  224. data/ext/RMagick/rmdraw.c +1308 -0
  225. data/ext/RMagick/rmfill.c +609 -0
  226. data/ext/RMagick/rmilist.c +685 -0
  227. data/ext/RMagick/rmimage.c +7980 -0
  228. data/ext/RMagick/rminfo.c +982 -0
  229. data/ext/RMagick/rmmain.c +1497 -0
  230. data/ext/RMagick/rmutil.c +2685 -0
  231. data/install.rb +1015 -0
  232. data/lib/RMagick.rb +1486 -0
  233. data/metaconfig.in +6 -0
  234. data/post-clean.rb +12 -0
  235. data/post-install.rb +36 -0
  236. data/post-setup.rb +245 -0
  237. data/rmagick.gemspec +22 -0
  238. data/uninstall.rb +71 -0
  239. metadata +286 -0
@@ -0,0 +1,27 @@
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 ADDED
@@ -0,0 +1,44 @@
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.stroke('transparent')
19
+ gc.fill('black')
20
+ gc.gravity(Magick::NorthWestGravity)
21
+ gc.text(20,20, 'NorthWestGravity')
22
+ gc.gravity(Magick::NorthGravity)
23
+ gc.text( 0,20, 'NorthGravity')
24
+ gc.gravity(Magick::NorthEastGravity)
25
+ gc.text(20,20, 'NorthEastGravity')
26
+ gc.gravity(Magick::WestGravity)
27
+ gc.text(20, 0, 'WestGravity')
28
+ gc.gravity(Magick::CenterGravity)
29
+ gc.text( 0, 0, 'CenterGravity')
30
+ gc.gravity(Magick::EastGravity)
31
+ gc.text(20, 0, 'EastGravity')
32
+ gc.gravity(Magick::SouthWestGravity)
33
+ gc.text(20,20, 'SouthWestGravity')
34
+ gc.gravity(Magick::SouthGravity)
35
+ gc.text( 0,20, 'SouthGravity')
36
+ gc.gravity(Magick::SouthEastGravity)
37
+ gc.text(20,20, 'SouthEastGravity')
38
+ gc.draw(imgl)
39
+
40
+ imgl.border!(1,1, "lightcyan2")
41
+
42
+ imgl.write("grav.gif")
43
+ exit
44
+
data/doc/ex/gravity.rb ADDED
@@ -0,0 +1,80 @@
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.font = "Helvetica"
24
+ draw.fill = "#600"
25
+ draw.undercolor = "red"
26
+
27
+ 0.step(330, 30) { |angle|
28
+ puts "angle #{angle}"
29
+ pic.new_image(600, 600) { self.background_color = "white" }
30
+
31
+ lines.draw pic
32
+
33
+ draw.annotate(pic, 0,0,x,y, "NorthWest") {
34
+ self.gravity = Magick::NorthWestGravity
35
+ self.rotation = angle
36
+ }
37
+ draw.annotate(pic, 0,0,0,y, "North") {
38
+ self.gravity = Magick::NorthGravity
39
+ self.rotation = angle
40
+ }
41
+ draw.annotate(pic, 0,0,x,y, "NorthEast") {
42
+ self.gravity = Magick::NorthEastGravity
43
+ self.rotation = angle
44
+ }
45
+ draw.annotate(pic, 0,0,x,0, "East") {
46
+ self.gravity = Magick::EastGravity
47
+ self.rotation = angle
48
+ }
49
+ draw.annotate(pic, 0,0,0,0, "Center") {
50
+ self.gravity = Magick::CenterGravity
51
+ self.rotation = angle
52
+ }
53
+ draw.annotate(pic, 0,0,x,y, "SouthEast") {
54
+ self.gravity = Magick::SouthEastGravity
55
+ self.rotation = angle
56
+ }
57
+ draw.annotate(pic, 0,0,0,y, "South") {
58
+ self.gravity = Magick::SouthGravity
59
+ self.rotation = angle
60
+ }
61
+ draw.annotate(pic, 0,0,x,y, "SouthWest") {
62
+ self.gravity = Magick::SouthWestGravity
63
+ self.rotation = angle
64
+ }
65
+ draw.annotate(pic, 0,0,x,0, "West") {
66
+ self.gravity = Magick::WestGravity
67
+ self.rotation = angle
68
+ }
69
+ }
70
+
71
+ puts "Writing image \"rb_gravity_out.miff\"..."
72
+ pic.delay = 20
73
+ pic.write "./rm_gravity_out.miff"
74
+
75
+ rescue
76
+ puts "#{$!} exception raised."
77
+ exit 1
78
+ end
79
+
80
+ exit 0
@@ -0,0 +1,27 @@
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
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
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
data/doc/ex/implode.rb ADDED
@@ -0,0 +1,32 @@
1
+ #! /usr/local/bin/ruby -w
2
+
3
+ require 'RMagick'
4
+
5
+ img = Magick::Image.read('images/Flower_Hat.jpg').first
6
+
7
+ legend = Magick::Draw.new
8
+ legend.stroke = 'transparent'
9
+ legend.fill = 'white'
10
+ legend.gravity = Magick::SouthGravity
11
+
12
+ frames = Magick::ImageList.new
13
+
14
+ implosion = 0.25
15
+ 8.times {
16
+ frames << img.implode(implosion)
17
+ legend.annotate(frames, 0,0,10,20, sprintf("% 4.2f", implosion))
18
+ implosion -= 0.10
19
+ }
20
+
21
+ 7.times {
22
+ implosion += 0.10
23
+ frames << img.implode(implosion)
24
+ legend.annotate(frames, 0,0,10,20, sprintf("% 4.2f", implosion))
25
+ }
26
+
27
+ frames.delay = 10
28
+ frames.iterations = 0
29
+ puts "Producing animation..."
30
+
31
+ frames.write("implode.gif")
32
+ exit
data/doc/ex/level.rb ADDED
@@ -0,0 +1,12 @@
1
+ #! /usr/local/bin/ruby -w
2
+ require 'RMagick'
3
+
4
+ # Demonstrate the Image#level method
5
+
6
+ before = Magick::Image.read('images/Flower_Hat.jpg').first
7
+
8
+ # Allow the white-point argument to default.
9
+ # Brighten up the mid-tones a bit.
10
+ after = before.level(0,1.50)
11
+ after.write('level.jpg')
12
+ exit
@@ -0,0 +1,33 @@
1
+ #! /usr/local/bin/ruby -w
2
+ require 'RMagick'
3
+
4
+ # Demonstrate the Image#level_channel method
5
+
6
+ before = Magick::Image.read('images/Flower_Hat.jpg').first
7
+
8
+ # Let the final argument default
9
+ begin
10
+ red = before.level_channel(Magick::RedChannel, Magick::MaxRGB, 2)
11
+ green = before.level_channel(Magick::GreenChannel,Magick::MaxRGB, 2)
12
+ blue = before.level_channel(Magick::BlueChannel, Magick::MaxRGB, 2)
13
+
14
+ # Composite the green image over the middle of the red image.
15
+ # Composite the blue image over the right-hand side of the red image.
16
+ green.crop!(red.columns/3, 0, red.columns/3, red.rows)
17
+ blue.crop!(red.columns/3*2+1, 0, red.columns/3+1, red.rows)
18
+ result = red.composite(green, Magick::CenterGravity, Magick::OverCompositeOp)
19
+ result = result.composite(blue, Magick::EastGravity, Magick::OverCompositeOp)
20
+
21
+ # Draw a black line between each of the three images.
22
+ line = Magick::Draw.new
23
+ line.line(result.columns/3, 0, result.columns/3, result.rows)
24
+ line.line(result.columns/3*2+1, 0, result.columns/3*2+1, result.rows)
25
+ line.draw(result)
26
+
27
+ # Substitute the standard "Not Implemented" image
28
+ rescue NotImplementedError
29
+ result = Magick::Image.read("images/notimplemented.gif").first
30
+ end
31
+
32
+ result.write('level_channel.jpg')
33
+ exit
data/doc/ex/line.rb ADDED
@@ -0,0 +1,40 @@
1
+ #! /usr/local/bin/ruby -w
2
+ require 'RMagick'
3
+
4
+ imgl = Magick::ImageList.new
5
+ imgl.new_image(250, 250, Magick::HatchFill.new('white','LightCyan2'))
6
+
7
+ gc = Magick::Draw.new
8
+
9
+ gc.stroke_linejoin('round')
10
+
11
+ # Draw 3 lines in 3 colors.
12
+ # Make each line 2 pixels wide.
13
+ gc.stroke('red')
14
+ gc.stroke_width(3)
15
+ gc.line(50,50, 50,200)
16
+ gc.stroke('blue')
17
+ gc.line(50,200, 200,200)
18
+ gc.stroke('green')
19
+ gc.line(200,200, 50,50)
20
+
21
+ # Identify the endpoints with gray circles
22
+ gc.stroke('gray50')
23
+ gc.stroke_width(1)
24
+ gc.fill_opacity(0)
25
+ gc.circle(50,50, 53,53)
26
+ gc.circle(50,200, 53,203)
27
+ gc.circle(200,200, 203,203)
28
+
29
+ # Annotate the endpoints
30
+ gc.fill('black')
31
+ gc.stroke('transparent')
32
+ gc.text(30,40, "'50,50'")
33
+ gc.text(30,220, "'50,200'")
34
+ gc.text(180, 220, "'200,200'")
35
+
36
+ gc.draw(imgl)
37
+ imgl.border!(1,1, "LightCyan2")
38
+
39
+ imgl.write("line.gif")
40
+
data/doc/ex/map.rb ADDED
@@ -0,0 +1,28 @@
1
+ #! /usr/local/bin/ruby -w
2
+
3
+ # Demonstrate the map, append, and composite methods by
4
+ # mapping the colors in three separate images into the
5
+ # 216 "Web-safe" colors.
6
+
7
+ require 'RMagick'
8
+
9
+ # Read three images.
10
+ unmapped = Magick::ImageList.new("images/Hot_Air_Balloons.jpg","images/Violin.jpg","images/Polynesia.jpg")
11
+
12
+ # "Read" the Netscape 216-color cube
13
+ map = Magick::ImageList.new "netscape:"
14
+
15
+ # Map the group of unmapped into the Netscape colors
16
+ $stdout.sync = true
17
+ printf "Mapping... Please be patient, this may take a few seconds... "
18
+ mapped = unmapped.map map, false
19
+ puts "Done."
20
+
21
+ # Use the append method to arrange the unmapped images
22
+ # side-by-side into a single image. Repeat for the mapped images.
23
+ before = unmapped.append false
24
+ before.write 'map_before.jpg'
25
+
26
+ after = mapped.append false
27
+ after.write 'map_after.jpg'
28
+ exit