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.
- data/ChangeLog +232 -0
- data/Makefile.in +28 -0
- data/README.html +404 -0
- data/README.txt +397 -0
- data/configure +8554 -0
- data/configure.ac +497 -0
- data/doc/comtasks.html +241 -0
- data/doc/constants.html +1195 -0
- data/doc/css/doc.css +299 -0
- data/doc/css/popup.css +34 -0
- data/doc/draw.html +3108 -0
- data/doc/ex/Adispatch.rb +43 -0
- data/doc/ex/Zconstitute.rb +9 -0
- data/doc/ex/adaptive_threshold.rb +19 -0
- data/doc/ex/add_noise.rb +18 -0
- data/doc/ex/affine.rb +48 -0
- data/doc/ex/affine_transform.rb +20 -0
- data/doc/ex/arc.rb +47 -0
- data/doc/ex/arcpath.rb +33 -0
- data/doc/ex/average.rb +15 -0
- data/doc/ex/axes.rb +64 -0
- data/doc/ex/bilevel_channel.rb +20 -0
- data/doc/ex/blur_image.rb +12 -0
- data/doc/ex/border.rb +10 -0
- data/doc/ex/bounding_box.rb +48 -0
- data/doc/ex/cbezier1.rb +40 -0
- data/doc/ex/cbezier2.rb +40 -0
- data/doc/ex/cbezier3.rb +40 -0
- data/doc/ex/cbezier4.rb +41 -0
- data/doc/ex/cbezier5.rb +41 -0
- data/doc/ex/cbezier6.rb +51 -0
- data/doc/ex/channel.rb +26 -0
- data/doc/ex/channel_threshold.rb +48 -0
- data/doc/ex/charcoal.rb +12 -0
- data/doc/ex/chop.rb +29 -0
- data/doc/ex/circle.rb +31 -0
- data/doc/ex/clip_path.rb +56 -0
- data/doc/ex/coalesce.rb +60 -0
- data/doc/ex/color_fill_to_border.rb +29 -0
- data/doc/ex/color_floodfill.rb +28 -0
- data/doc/ex/color_histogram.rb +60 -0
- data/doc/ex/color_reset.rb +11 -0
- data/doc/ex/colorize.rb +16 -0
- data/doc/ex/colors.rb +65 -0
- data/doc/ex/composite.rb +135 -0
- data/doc/ex/contrast.rb +37 -0
- data/doc/ex/crop.rb +31 -0
- data/doc/ex/crop_with_gravity.rb +46 -0
- data/doc/ex/cycle_colormap.rb +21 -0
- data/doc/ex/demo.rb +324 -0
- data/doc/ex/drawcomp.rb +42 -0
- data/doc/ex/drop_shadow.rb +60 -0
- data/doc/ex/edge.rb +11 -0
- data/doc/ex/ellipse.rb +43 -0
- data/doc/ex/emboss.rb +11 -0
- data/doc/ex/enhance.rb +28 -0
- data/doc/ex/equalize.rb +11 -0
- data/doc/ex/flatten_images.rb +38 -0
- data/doc/ex/flip.rb +11 -0
- data/doc/ex/flop.rb +11 -0
- data/doc/ex/fonts.rb +20 -0
- data/doc/ex/frame.rb +12 -0
- data/doc/ex/gaussian_blur.rb +11 -0
- data/doc/ex/get_multiline_type_metrics.rb +53 -0
- data/doc/ex/get_pixels.rb +48 -0
- data/doc/ex/get_type_metrics.rb +140 -0
- data/doc/ex/gradientfill.rb +27 -0
- data/doc/ex/grav.rb +44 -0
- data/doc/ex/gravity.rb +80 -0
- data/doc/ex/hatchfill.rb +27 -0
- data/doc/ex/images/Ballerina.jpg +0 -0
- data/doc/ex/images/Ballerina3.jpg +0 -0
- data/doc/ex/images/Button_0.gif +0 -0
- data/doc/ex/images/Button_1.gif +0 -0
- data/doc/ex/images/Button_2.gif +0 -0
- data/doc/ex/images/Button_3.gif +0 -0
- data/doc/ex/images/Button_4.gif +0 -0
- data/doc/ex/images/Button_5.gif +0 -0
- data/doc/ex/images/Button_6.gif +0 -0
- data/doc/ex/images/Button_7.gif +0 -0
- data/doc/ex/images/Button_8.gif +0 -0
- data/doc/ex/images/Button_9.gif +0 -0
- data/doc/ex/images/Button_A.gif +0 -0
- data/doc/ex/images/Button_B.gif +0 -0
- data/doc/ex/images/Button_C.gif +0 -0
- data/doc/ex/images/Button_D.gif +0 -0
- data/doc/ex/images/Button_E.gif +0 -0
- data/doc/ex/images/Button_F.gif +0 -0
- data/doc/ex/images/Button_G.gif +0 -0
- data/doc/ex/images/Button_H.gif +0 -0
- data/doc/ex/images/Button_I.gif +0 -0
- data/doc/ex/images/Button_J.gif +0 -0
- data/doc/ex/images/Button_K.gif +0 -0
- data/doc/ex/images/Button_L.gif +0 -0
- data/doc/ex/images/Button_M.gif +0 -0
- data/doc/ex/images/Button_N.gif +0 -0
- data/doc/ex/images/Button_O.gif +0 -0
- data/doc/ex/images/Button_P.gif +0 -0
- data/doc/ex/images/Button_Q.gif +0 -0
- data/doc/ex/images/Button_R.gif +0 -0
- data/doc/ex/images/Button_S.gif +0 -0
- data/doc/ex/images/Button_T.gif +0 -0
- data/doc/ex/images/Button_U.gif +0 -0
- data/doc/ex/images/Button_V.gif +0 -0
- data/doc/ex/images/Button_W.gif +0 -0
- data/doc/ex/images/Button_X.gif +0 -0
- data/doc/ex/images/Button_Y.gif +0 -0
- data/doc/ex/images/Button_Z.gif +0 -0
- data/doc/ex/images/Cheetah.jpg +0 -0
- data/doc/ex/images/Coffee.wmf +0 -0
- data/doc/ex/images/Flower_Hat.jpg +0 -0
- data/doc/ex/images/Gold_Statue.jpg +0 -0
- data/doc/ex/images/Hot_Air_Balloons.jpg +0 -0
- data/doc/ex/images/Hot_Air_Balloons_H.jpg +0 -0
- data/doc/ex/images/No.wmf +0 -0
- data/doc/ex/images/Polynesia.jpg +0 -0
- data/doc/ex/images/Red_Rocks.jpg +0 -0
- data/doc/ex/images/Shorts.jpg +0 -0
- data/doc/ex/images/Snake.wmf +0 -0
- data/doc/ex/images/Violin.jpg +0 -0
- data/doc/ex/images/graydient230x6.gif +0 -0
- data/doc/ex/images/logo400x83.gif +0 -0
- data/doc/ex/images/model.miff +0 -0
- data/doc/ex/images/notimplemented.gif +0 -0
- data/doc/ex/images/smile.miff +0 -0
- data/doc/ex/images/spin.gif +0 -0
- data/doc/ex/implode.rb +32 -0
- data/doc/ex/level.rb +12 -0
- data/doc/ex/level_channel.rb +33 -0
- data/doc/ex/line.rb +40 -0
- data/doc/ex/map.rb +28 -0
- data/doc/ex/map_f.rb +15 -0
- data/doc/ex/matte_fill_to_border.rb +42 -0
- data/doc/ex/matte_floodfill.rb +35 -0
- data/doc/ex/matte_replace.rb +42 -0
- data/doc/ex/median_filter.rb +28 -0
- data/doc/ex/modulate.rb +11 -0
- data/doc/ex/mono.rb +23 -0
- data/doc/ex/morph.rb +26 -0
- data/doc/ex/mosaic.rb +35 -0
- data/doc/ex/motion_blur.rb +11 -0
- data/doc/ex/negate.rb +11 -0
- data/doc/ex/negate_channel.rb +19 -0
- data/doc/ex/normalize.rb +11 -0
- data/doc/ex/oil_paint.rb +11 -0
- data/doc/ex/opacity.rb +38 -0
- data/doc/ex/opaque.rb +14 -0
- data/doc/ex/ordered_dither.rb +11 -0
- data/doc/ex/path.rb +62 -0
- data/doc/ex/pattern1.rb +25 -0
- data/doc/ex/pattern2.rb +26 -0
- data/doc/ex/polygon.rb +24 -0
- data/doc/ex/polyline.rb +23 -0
- data/doc/ex/posterize.rb +19 -0
- data/doc/ex/preview.rb +16 -0
- data/doc/ex/qbezierpath.rb +49 -0
- data/doc/ex/quantize-m.rb +25 -0
- data/doc/ex/radial_blur.rb +19 -0
- data/doc/ex/raise.rb +11 -0
- data/doc/ex/random_channel_threshold.rb +17 -0
- data/doc/ex/random_threshold_channel.rb +18 -0
- data/doc/ex/rectangle.rb +33 -0
- data/doc/ex/reduce_noise.rb +28 -0
- data/doc/ex/roll.rb +9 -0
- data/doc/ex/rotate.rb +43 -0
- data/doc/ex/rotate_f.rb +14 -0
- data/doc/ex/roundrect.rb +32 -0
- data/doc/ex/rubyname.rb +31 -0
- data/doc/ex/segment.rb +11 -0
- data/doc/ex/shade.rb +11 -0
- data/doc/ex/shave.rb +15 -0
- data/doc/ex/shear.rb +10 -0
- data/doc/ex/skewx.rb +50 -0
- data/doc/ex/skewy.rb +45 -0
- data/doc/ex/smile.rb +124 -0
- data/doc/ex/solarize.rb +11 -0
- data/doc/ex/splice.rb +16 -0
- data/doc/ex/spread.rb +11 -0
- data/doc/ex/stegano.rb +50 -0
- data/doc/ex/stroke_dasharray.rb +41 -0
- data/doc/ex/stroke_linecap.rb +44 -0
- data/doc/ex/stroke_linejoin.rb +48 -0
- data/doc/ex/stroke_width.rb +47 -0
- data/doc/ex/swirl.rb +17 -0
- data/doc/ex/text.rb +32 -0
- data/doc/ex/text_align.rb +36 -0
- data/doc/ex/text_antialias.rb +33 -0
- data/doc/ex/text_undercolor.rb +26 -0
- data/doc/ex/texture_fill_to_border.rb +34 -0
- data/doc/ex/texture_floodfill.rb +31 -0
- data/doc/ex/texturefill.rb +25 -0
- data/doc/ex/threshold.rb +13 -0
- data/doc/ex/to_blob.rb +14 -0
- data/doc/ex/translate.rb +37 -0
- data/doc/ex/transparent.rb +38 -0
- data/doc/ex/trim.rb +25 -0
- data/doc/ex/unsharp_mask.rb +28 -0
- data/doc/ex/viewex.rb +36 -0
- data/doc/ex/wave.rb +9 -0
- data/doc/ilist.html +1592 -0
- data/doc/image1.html +3009 -0
- data/doc/image2.html +2169 -0
- data/doc/image3.html +2815 -0
- data/doc/imageattrs.html +1319 -0
- data/doc/imusage.html +403 -0
- data/doc/index.html +418 -0
- data/doc/info.html +949 -0
- data/doc/magick.html +439 -0
- data/doc/scripts/doc.js +9 -0
- data/doc/struct.html +1334 -0
- data/doc/usage.html +1318 -0
- data/examples/describe.rb +44 -0
- data/examples/histogram.rb +289 -0
- data/examples/image_opacity.rb +29 -0
- data/examples/import_export.rb +31 -0
- data/examples/pattern_fill.rb +38 -0
- data/examples/rotating_text.rb +47 -0
- data/examples/thumbnail.rb +65 -0
- data/examples/vignette.rb +79 -0
- data/ext/RMagick/MANIFEST +239 -0
- data/ext/RMagick/extconf.rb.in +21 -0
- data/ext/RMagick/rmagick.h +938 -0
- data/ext/RMagick/rmagick_config.h.in +170 -0
- data/ext/RMagick/rmdraw.c +1308 -0
- data/ext/RMagick/rmfill.c +609 -0
- data/ext/RMagick/rmilist.c +685 -0
- data/ext/RMagick/rmimage.c +7980 -0
- data/ext/RMagick/rminfo.c +982 -0
- data/ext/RMagick/rmmain.c +1497 -0
- data/ext/RMagick/rmutil.c +2685 -0
- data/install.rb +1015 -0
- data/lib/RMagick.rb +1486 -0
- data/metaconfig.in +6 -0
- data/post-clean.rb +12 -0
- data/post-install.rb +36 -0
- data/post-setup.rb +245 -0
- data/rmagick.gemspec +22 -0
- data/uninstall.rb +71 -0
- 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
|
data/doc/ex/hatchfill.rb
ADDED
@@ -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
|
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
|