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
data/doc/image3.html
ADDED
@@ -0,0 +1,2815 @@
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
2
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
3
|
+
|
4
|
+
<html xmlns="http://www.w3.org/1999/xhtml">
|
5
|
+
<head>
|
6
|
+
<meta name="generator" content=
|
7
|
+
"HTML Tidy for Linux/x86 (vers 1st December 2004), see www.w3.org" />
|
8
|
+
|
9
|
+
<title>RMagick: class Image (instance methods, part 3)</title>
|
10
|
+
<meta http-equiv="Content-Type" content=
|
11
|
+
"text/html; charset=us-ascii" />
|
12
|
+
<meta name="GENERATOR" content="Quanta Plus" />
|
13
|
+
<meta name="Copyright" content=
|
14
|
+
"Copyright (C) 2004 by Timothy P. Hunter" />
|
15
|
+
<link rel="stylesheet" type="text/css" href="css/doc.css" />
|
16
|
+
<script type="text/javascript" src="scripts/doc.js">
|
17
|
+
</script>
|
18
|
+
<script type="text/javascript">
|
19
|
+
//<![CDATA[
|
20
|
+
<!-- Pre-load this image so that the browser knows how big it is. -->
|
21
|
+
<!-- Begin
|
22
|
+
flower_hat = new Image();
|
23
|
+
flower_hat.src = "ex/images/Flower_Hat.jpg";
|
24
|
+
// End -->
|
25
|
+
//]]>
|
26
|
+
</script>
|
27
|
+
<style type="text/css">
|
28
|
+
/*<![CDATA[*/
|
29
|
+
|
30
|
+
/*
|
31
|
+
* This style is used for the list of PreviewType
|
32
|
+
* constants defined for the preview method, below.
|
33
|
+
*/
|
34
|
+
#prevlist ul {
|
35
|
+
float: left;
|
36
|
+
list-style: none;
|
37
|
+
margin-bottom: 0;
|
38
|
+
}
|
39
|
+
|
40
|
+
/*
|
41
|
+
* This style is used for the list of QuantumOperator
|
42
|
+
* constants defined for the quantum_operator method, below.
|
43
|
+
*
|
44
|
+
*/
|
45
|
+
#quantum_op_list {
|
46
|
+
list-style-type: none;
|
47
|
+
}
|
48
|
+
|
49
|
+
/*]]>*/
|
50
|
+
</style>
|
51
|
+
</head>
|
52
|
+
|
53
|
+
<body>
|
54
|
+
<h6 id="header">RMagick User's Guide and Reference</h6>
|
55
|
+
|
56
|
+
<div class="nav">
|
57
|
+
« <a href="image2.html">Prev</a> | <a href=
|
58
|
+
"index.html">Contents</a> | <a href=
|
59
|
+
"draw.html">Next</a> »
|
60
|
+
</div>
|
61
|
+
|
62
|
+
<h1>class Image <span class="superclass">< Object</span>
|
63
|
+
(class and instance methods, part 3)<br />
|
64
|
+
<span class="mixin">mixes in Comparable</span></h1>
|
65
|
+
|
66
|
+
<div id="toc">
|
67
|
+
<h2>Table of Contents</h2>
|
68
|
+
|
69
|
+
<h3>instance methods</h3>
|
70
|
+
|
71
|
+
<div>
|
72
|
+
<div class="toccol">
|
73
|
+
<ul>
|
74
|
+
<li><a href="#preview">preview</a></li>
|
75
|
+
|
76
|
+
<li><a href="#profile_bang">profile!</a></li>
|
77
|
+
|
78
|
+
<li><a href="#properties">properties</a></li>
|
79
|
+
|
80
|
+
<li><a href="#quantize">quantize</a></li>
|
81
|
+
|
82
|
+
<li><a href="#quantum_operator">quantum_operator</a></li>
|
83
|
+
|
84
|
+
<li><a href="#radial_blur">radial_blur</a></li>
|
85
|
+
|
86
|
+
<li><a href="#raise">raise</a></li>
|
87
|
+
|
88
|
+
<li><a href=
|
89
|
+
"#random_threshold_channel">random_threshold_channel</a></li>
|
90
|
+
|
91
|
+
<li><a href="#reduce_noise">reduce_noise</a></li>
|
92
|
+
|
93
|
+
<li><a href="#resize">resize</a></li>
|
94
|
+
|
95
|
+
<li><a href="#resize_bang">resize!</a></li>
|
96
|
+
|
97
|
+
<li><a href="#roll">roll</a></li>
|
98
|
+
|
99
|
+
<li><a href="#rotate">rotate</a></li>
|
100
|
+
|
101
|
+
<li><a href="#rotate_bang">rotate!</a></li>
|
102
|
+
|
103
|
+
<li><a href="#sample">sample</a></li>
|
104
|
+
|
105
|
+
<li><a href="#sample_bang">sample!</a></li>
|
106
|
+
|
107
|
+
<li><a href="#scale">scale</a></li>
|
108
|
+
</ul>
|
109
|
+
</div>
|
110
|
+
|
111
|
+
<div class="toccol">
|
112
|
+
<ul>
|
113
|
+
<li><a href="#scale_bang">scale!</a></li>
|
114
|
+
|
115
|
+
<li><a href="#segment">segment</a></li>
|
116
|
+
|
117
|
+
<li><a href=
|
118
|
+
"#set_channel_depth">set_channel_depth</a></li>
|
119
|
+
|
120
|
+
<li><a href="#shade">shade</a></li>
|
121
|
+
|
122
|
+
<li><a href="#sharpen">sharpen</a></li>
|
123
|
+
|
124
|
+
<li><a href="#sharpen_channel">sharpen_channel</a></li>
|
125
|
+
|
126
|
+
<li><a href="#shave">shave</a></li>
|
127
|
+
|
128
|
+
<li><a href="#shave_bang">shave!</a></li>
|
129
|
+
|
130
|
+
<li><a href="#shear">shear</a></li>
|
131
|
+
|
132
|
+
<li><a href="#signature">signature</a></li>
|
133
|
+
|
134
|
+
<li><a href="#solarize">solarize</a></li>
|
135
|
+
|
136
|
+
<li><a href="#splice">splice</a></li>
|
137
|
+
|
138
|
+
<li><a href="#spread">spread</a></li>
|
139
|
+
|
140
|
+
<li><a href="#statistics">statistics</a></li>
|
141
|
+
|
142
|
+
<li><a href="#stegano">stegano</a></li>
|
143
|
+
|
144
|
+
<li><a href="#stereo">stereo</a></li>
|
145
|
+
|
146
|
+
<li><a href="#store_pixels">store_pixels</a></li>
|
147
|
+
</ul>
|
148
|
+
</div>
|
149
|
+
|
150
|
+
<div class="toccol">
|
151
|
+
<ul>
|
152
|
+
<li><a href="#strip_bang">strip!</a></li>
|
153
|
+
|
154
|
+
<li><a href="#swirl">swirl</a></li>
|
155
|
+
|
156
|
+
<li><a href=
|
157
|
+
"#texture_fill_to_border">texture_fill_to_border</a></li>
|
158
|
+
|
159
|
+
<li><a href=
|
160
|
+
"#texture_floodfill">texture_floodfill</a></li>
|
161
|
+
|
162
|
+
<li><a href="#threshold">threshold</a></li>
|
163
|
+
|
164
|
+
<li><a href="#thumbnail">thumbnail</a></li>
|
165
|
+
|
166
|
+
<li><a href="#thumbnail_bang">thumbnail!</a></li>
|
167
|
+
|
168
|
+
<li><a href="#to_blob">to_blob</a></li>
|
169
|
+
|
170
|
+
<li><a href="#to_color">to_color</a></li>
|
171
|
+
|
172
|
+
<li><a href="#transparent">transparent</a></li>
|
173
|
+
|
174
|
+
<li><a href="#trim">trim</a></li>
|
175
|
+
|
176
|
+
<li><a href="#trim_bang">trim!</a></li>
|
177
|
+
|
178
|
+
<li><a href="#unsharp_mask">unsharp_mask</a></li>
|
179
|
+
|
180
|
+
<li><a href=
|
181
|
+
"#unsharp_mask_channel">unsharp_mask_channel</a></li>
|
182
|
+
|
183
|
+
<li><a href="#view">view</a></li>
|
184
|
+
|
185
|
+
<li><a href="#wave">wave</a></li>
|
186
|
+
|
187
|
+
<li><a href="#white_threshold">white_threshold</a></li>
|
188
|
+
|
189
|
+
<li><a href="#write">write</a></li>
|
190
|
+
</ul>
|
191
|
+
</div>
|
192
|
+
</div>
|
193
|
+
</div>
|
194
|
+
|
195
|
+
<h2 class="methods">instance methods</h2>
|
196
|
+
|
197
|
+
<div class="sig">
|
198
|
+
<h3 id="preview">preview</h3>
|
199
|
+
|
200
|
+
<p><span class="arg">image</span>.preview(<span class=
|
201
|
+
"arg">aPreviewType</span>) -> <em>anImage</em></p>
|
202
|
+
</div>
|
203
|
+
|
204
|
+
<div class="desc">
|
205
|
+
<h4>Description</h4>
|
206
|
+
|
207
|
+
<p>Creates an image that contains 9 small versions of the
|
208
|
+
receiver image. The center image is the unchanged receiver. The
|
209
|
+
other 8 images are variations created by transforming the
|
210
|
+
receiver according to the specified preview type with varying
|
211
|
+
parameters.</p>
|
212
|
+
|
213
|
+
<p>A preview image is an easy way to "try out" a transformation
|
214
|
+
method.</p>
|
215
|
+
|
216
|
+
<h4>Arguments</h4>
|
217
|
+
|
218
|
+
<p>One of the following PreviewType constants:</p>
|
219
|
+
|
220
|
+
<div id="prevlist">
|
221
|
+
<ul>
|
222
|
+
<li>RotatePreview</li>
|
223
|
+
|
224
|
+
<li>ShearPreview</li>
|
225
|
+
|
226
|
+
<li>RollPreview</li>
|
227
|
+
|
228
|
+
<li>HuePreview</li>
|
229
|
+
|
230
|
+
<li>SaturationPreview</li>
|
231
|
+
|
232
|
+
<li>BrightnessPreview</li>
|
233
|
+
|
234
|
+
<li>GammaPreview</li>
|
235
|
+
|
236
|
+
<li>SpiffPreview</li>
|
237
|
+
|
238
|
+
<li>DullPreview</li>
|
239
|
+
|
240
|
+
<li>GrayscalePreview</li>
|
241
|
+
|
242
|
+
<li>QuantizePreview</li>
|
243
|
+
|
244
|
+
<li>DespecklePreview</li>
|
245
|
+
|
246
|
+
<li>ReduceNoisePreview</li>
|
247
|
+
|
248
|
+
<li>AddNoisePreview</li>
|
249
|
+
|
250
|
+
<li>SharpenPreview</li>
|
251
|
+
</ul>
|
252
|
+
|
253
|
+
<ul>
|
254
|
+
<li>BlurPreview</li>
|
255
|
+
|
256
|
+
<li>ThresholdPreview</li>
|
257
|
+
|
258
|
+
<li>EdgeDetectPreview</li>
|
259
|
+
|
260
|
+
<li>SpreadPreview</li>
|
261
|
+
|
262
|
+
<li>SolarizePreview</li>
|
263
|
+
|
264
|
+
<li>ShadePreview</li>
|
265
|
+
|
266
|
+
<li>RaisePreview</li>
|
267
|
+
|
268
|
+
<li>SegmentPreview</li>
|
269
|
+
|
270
|
+
<li>SwirlPreview</li>
|
271
|
+
|
272
|
+
<li>ImplodePreview</li>
|
273
|
+
|
274
|
+
<li>WavePreview</li>
|
275
|
+
|
276
|
+
<li>OilPaintPreview</li>
|
277
|
+
|
278
|
+
<li>CharcoalDrawingPreview</li>
|
279
|
+
|
280
|
+
<li>JPEGPreview</li>
|
281
|
+
</ul>
|
282
|
+
</div>
|
283
|
+
|
284
|
+
<div style="clear:both"></div>
|
285
|
+
|
286
|
+
<h4>Returns</h4>
|
287
|
+
|
288
|
+
<p>A new image</p>
|
289
|
+
|
290
|
+
<h4>Example</h4>
|
291
|
+
|
292
|
+
<p>This half-size preview demonstrates the SolarizePreview
|
293
|
+
argument.</p>
|
294
|
+
|
295
|
+
<p><a href="javascript:popup('preview.rb.html')"><img src=
|
296
|
+
"ex/preview.jpg" alt="preview example" title=
|
297
|
+
"Click to see the example script" /></a></p>
|
298
|
+
|
299
|
+
<h4>Magick API</h4>
|
300
|
+
|
301
|
+
<p>PreviewImage (available in ImageMagick 6.0.0)</p>
|
302
|
+
</div>
|
303
|
+
|
304
|
+
<div class="sig">
|
305
|
+
<h3 id="profile_bang">profile!</h3>
|
306
|
+
|
307
|
+
<p><span class="arg">image</span>.profile!(<span class=
|
308
|
+
"arg">name</span>, <span class="arg">profile</span>) ->
|
309
|
+
<em>image</em></p>
|
310
|
+
</div>
|
311
|
+
|
312
|
+
<div class="desc">
|
313
|
+
<h4>Description</h4>
|
314
|
+
|
315
|
+
<p><span class="imquote">Adds or removes a ICM, IPTC, or
|
316
|
+
generic profile from an image.</span> If <code>profile</code>
|
317
|
+
is <code>nil</code>, the specified profile is removed from the
|
318
|
+
image. Use <code>profile('*', nil)</code> to remove all
|
319
|
+
profiles from the image.</p>
|
320
|
+
|
321
|
+
<h4>Arguments</h4>
|
322
|
+
|
323
|
+
<dl>
|
324
|
+
<dt>name</dt>
|
325
|
+
|
326
|
+
<dd>The profile name, or "*" to represent all the profiles in
|
327
|
+
the image.</dd>
|
328
|
+
|
329
|
+
<dt>profile</dt>
|
330
|
+
|
331
|
+
<dd>The profile value, or <code>nil</code> to cause the
|
332
|
+
profile to be removed.</dd>
|
333
|
+
</dl>
|
334
|
+
|
335
|
+
<h4>Returns</h4>
|
336
|
+
|
337
|
+
<p>self</p>
|
338
|
+
|
339
|
+
<h4>Magick API</h4>
|
340
|
+
|
341
|
+
<p>ProfileImage</p>
|
342
|
+
|
343
|
+
<h4>Note</h4>
|
344
|
+
|
345
|
+
<p>×Magick does not automatically remove profiles when
|
346
|
+
resizing images. If you are trying to make your JPEG thumbnail
|
347
|
+
images as small as possible, use <code>profile!</code> to
|
348
|
+
remove any profiles from the image as well. See <a href=
|
349
|
+
"http://www.imagemagick.org/www/FAQ.html#C31"><cite>Why are my
|
350
|
+
JPEG files larger than expected?</cite></a> in the
|
351
|
+
×Magick FAQ.</p>
|
352
|
+
</div>
|
353
|
+
|
354
|
+
<div class="sig">
|
355
|
+
<h3 id="properties">properties</h3>
|
356
|
+
|
357
|
+
<p><span class="arg">image</span>.properties <span class=
|
358
|
+
"arg">[ {|name,value| block} ]</span> ->
|
359
|
+
<em>image</em><br />
|
360
|
+
<span class="arg">image</span>.properties ->
|
361
|
+
<em>aHash</em></p>
|
362
|
+
</div>
|
363
|
+
|
364
|
+
<div class="desc">
|
365
|
+
<h4>Description</h4>
|
366
|
+
|
367
|
+
<p>If called with an associated block, <code>properties</code>
|
368
|
+
runs the block once for each property defined for the image.
|
369
|
+
The block arguments are the property name and its value. If
|
370
|
+
there is no block, <code>properties</code> returns a hash with
|
371
|
+
one element for each property. The hash key is the property
|
372
|
+
name and the associated value is the property value.</p>
|
373
|
+
|
374
|
+
<h4>Returns</h4>
|
375
|
+
|
376
|
+
<p>If called without a block, returns a hash, otherwise returns
|
377
|
+
<code>self</code>.</p>
|
378
|
+
|
379
|
+
<h4>See also</h4><p><a href="image1.html#aref">[ ]</a>,
|
380
|
+
<a href="image1.html#aset">[ ]=</a></p>
|
381
|
+
|
382
|
+
<h4>Note</h4>
|
383
|
+
|
384
|
+
<p>The EXIF property is not created until the first time an
|
385
|
+
EXIF tag or entry number is referenced.</p>
|
386
|
+
</div>
|
387
|
+
|
388
|
+
<div class="sig">
|
389
|
+
<h3 id="quantize">quantize</h3>
|
390
|
+
|
391
|
+
<p><span class="arg">image</span>.quantize(<span class=
|
392
|
+
"arg">number_colors</span>=256, <span class=
|
393
|
+
"arg">colorspace</span>=Magick::RGBColorspace, <span class=
|
394
|
+
"arg">dither</span>=<code>true</code>, <span class=
|
395
|
+
"arg">tree_depth</span>=0, <span class=
|
396
|
+
"arg">measure_error</span>=<code>false</code>) ->
|
397
|
+
<em>anImage</em></p>
|
398
|
+
</div>
|
399
|
+
|
400
|
+
<div class="desc">
|
401
|
+
<h4>Description</h4>
|
402
|
+
|
403
|
+
<p class="imquote">Analyzes the colors within a reference image
|
404
|
+
and chooses a fixed number of colors to represent the image.
|
405
|
+
The goal of the algorithm is to minimize the difference between
|
406
|
+
the input and output image while minimizing the processing
|
407
|
+
time.</p>
|
408
|
+
|
409
|
+
<h4>Arguments</h4>
|
410
|
+
|
411
|
+
<dl>
|
412
|
+
<dt>number_colors</dt>
|
413
|
+
|
414
|
+
<dd>The maximum number of colors in the result image. Must be
|
415
|
+
<= <a href=
|
416
|
+
"constants.html#Miscellaneous_constants">MaxRGB</a>.</dd>
|
417
|
+
|
418
|
+
<dt>colorspace</dt>
|
419
|
+
|
420
|
+
<dd class="imquote">The <a href=
|
421
|
+
"constants.html#ColorspaceType">colorspace</a> to quantize
|
422
|
+
in. Color reduction, by default, takes place in the RGB color
|
423
|
+
space. Empirical evidence suggests that distances
|
424
|
+
in color spaces such as YUV or YIQ correspond
|
425
|
+
to perceptual color differences more closely
|
426
|
+
than do distances in RGB space. The Transparent color
|
427
|
+
space behaves uniquely in that it preserves the matte channel
|
428
|
+
of the image if it exists.</dd>
|
429
|
+
|
430
|
+
<dt>dither</dt>
|
431
|
+
|
432
|
+
<dd class="imquote">Set to <code>true</code> to apply
|
433
|
+
Floyd/Steinberg error diffusion to the image. When the size
|
434
|
+
of the color palette is less than the image colors, this
|
435
|
+
trades off spacial resolution for color resolution by
|
436
|
+
dithering to achieve a similar looking image.</dd>
|
437
|
+
|
438
|
+
<dt>tree_depth</dt>
|
439
|
+
|
440
|
+
<dd class="imquote">The tree depth to use while quantizing.
|
441
|
+
The values 0 and 1 support automatic tree depth
|
442
|
+
determination. The tree depth may be forced via values
|
443
|
+
ranging from 2 to 8. The ideal tree depth depends on the
|
444
|
+
characteristics of the input image, and may be determined
|
445
|
+
through experimentation.</dd>
|
446
|
+
|
447
|
+
<dt>measure_error</dt>
|
448
|
+
|
449
|
+
<dd class="imquote">Set to <code>true</code> to calculate
|
450
|
+
quantization errors when quantizing the image.</dd>
|
451
|
+
</dl>
|
452
|
+
|
453
|
+
<h4>Returns</h4>
|
454
|
+
|
455
|
+
<p>A new image</p>
|
456
|
+
|
457
|
+
<h4>Example</h4>
|
458
|
+
|
459
|
+
<p>See the example for <a href=
|
460
|
+
"image1.html#colorize">colorize</a>.</p>
|
461
|
+
|
462
|
+
<h4>See also</h4>
|
463
|
+
|
464
|
+
<p><a href="image2.html#ordered_dither">ordered_dither</a>,
|
465
|
+
<a href="image2.html#posterize">posterize</a>, <a href=
|
466
|
+
"ilist.html#quantize">ImageList#quantize</a></p>
|
467
|
+
|
468
|
+
<h4>Magick API</h4>
|
469
|
+
|
470
|
+
<p>QuantizeImage</p>
|
471
|
+
</div>
|
472
|
+
|
473
|
+
<div class="sig">
|
474
|
+
<h3 id="quantum_operator">quantum_operator</h3>
|
475
|
+
|
476
|
+
<p><span class="arg">image</span>.quantum_operator(<span class=
|
477
|
+
"arg">operator</span>, <span class="arg">rvalue</span>,
|
478
|
+
<span class="arg">channel</span>=AllChannels) ->
|
479
|
+
<em>anImage</em></p>
|
480
|
+
</div>
|
481
|
+
|
482
|
+
<div class="desc">
|
483
|
+
<h4>Description</h4>
|
484
|
+
|
485
|
+
<p>Performs the requested integer arithmetic operation on the
|
486
|
+
selected channel of the image. This method allows simple
|
487
|
+
arithmetic operations on the component values of all pixels in
|
488
|
+
an image. Of course, you could also do this in Ruby using
|
489
|
+
<a href="image2.html#get_pixels">get_pixels</a> and <a href=
|
490
|
+
"#store_pixels">store_pixels</a>, or <a href="#view">view</a>,
|
491
|
+
but <code>quantum_operator</code> will be faster, especially
|
492
|
+
for large numbers of pixels, since it does not need to convert
|
493
|
+
the pixels from C to Ruby.</p>
|
494
|
+
|
495
|
+
<h4>Arguments</h4>
|
496
|
+
|
497
|
+
<dl>
|
498
|
+
<dt>operator</dt>
|
499
|
+
|
500
|
+
<dd>
|
501
|
+
One of the following <code>QuantumExpressionOperator</code>
|
502
|
+
constants:
|
503
|
+
|
504
|
+
<ul id="quantum_op_list">
|
505
|
+
<li>AddQuantumOperator</li>
|
506
|
+
|
507
|
+
<li><code>AndQuantumOperator</code></li>
|
508
|
+
|
509
|
+
<li><code>DivideQuantumOperator</code></li>
|
510
|
+
|
511
|
+
<li><code>LShiftQuantumOperator</code></li>
|
512
|
+
|
513
|
+
<li><code>MultiplyQuantumOperator</code></li>
|
514
|
+
|
515
|
+
<li><code>OrQuantumOperator</code></li>
|
516
|
+
|
517
|
+
<li><code>RShiftQuantumOperator</code></li>
|
518
|
+
|
519
|
+
<li><code>SubtractQuantumOperator</code></li>
|
520
|
+
|
521
|
+
<li><code>XorQuantumOperator</code></li>
|
522
|
+
</ul>
|
523
|
+
</dd>
|
524
|
+
|
525
|
+
<dt>rvalue</dt>
|
526
|
+
|
527
|
+
<dd>the operation rvalue. A <code>Float</code>.</dd>
|
528
|
+
|
529
|
+
<dt>channel</dt>
|
530
|
+
|
531
|
+
<dd>A <a href="constants.html#ChannelType">ChannelType</a>
|
532
|
+
constant. The default is to operate on all channels.</dd>
|
533
|
+
</dl>
|
534
|
+
|
535
|
+
<h4>Returns</h4>
|
536
|
+
|
537
|
+
<p>self</p>
|
538
|
+
|
539
|
+
<h4>Example</h4>
|
540
|
+
|
541
|
+
<p>Divide the red component of all the pixels in the image by
|
542
|
+
2:</p>
|
543
|
+
<pre>
|
544
|
+
img.quantum_operator(DivideQuantumOp, 2, RedChannel)
|
545
|
+
</pre>
|
546
|
+
|
547
|
+
<h4>Magick API</h4>QuantumOperatorRegionImage (GraphicsMagick
|
548
|
+
1.1), EvaluateImageChannel (ImageMagick 6.0.0)
|
549
|
+
</div>
|
550
|
+
|
551
|
+
<div class="sig">
|
552
|
+
<h3 id="radial_blur">radial_blur</h3>
|
553
|
+
|
554
|
+
<p><span class="arg">image</span>.radial_blur(<span class=
|
555
|
+
"arg">aFloat</span>) -> <em>anImage</em></p>
|
556
|
+
</div>
|
557
|
+
|
558
|
+
<div class="desc">
|
559
|
+
<h4>Description</h4>
|
560
|
+
|
561
|
+
<p class="imquote">Applies a radial blur to the image.</p>
|
562
|
+
|
563
|
+
<h4>Arguments</h4>
|
564
|
+
|
565
|
+
<dl>
|
566
|
+
<dt>angle</dt>
|
567
|
+
|
568
|
+
<dd>Amount of blur, in degrees</dd>
|
569
|
+
</dl>
|
570
|
+
|
571
|
+
<h4>Returns</h4>
|
572
|
+
|
573
|
+
<p>A new image</p>
|
574
|
+
|
575
|
+
<h4>Example</h4>
|
576
|
+
|
577
|
+
<p class="rollover"><a href=
|
578
|
+
"javascript:popup('radial_blur.rb.html')"><img src=
|
579
|
+
"ex/radial_blur.jpg" onmouseover=
|
580
|
+
"this.src='ex/images/Flower_Hat.jpg'" onmouseout=
|
581
|
+
"this.src='ex/radial_blur.jpg'" alt="radial_blur example"
|
582
|
+
title="Click to see the example script" /></a> <img src=
|
583
|
+
"ex/images/spin.gif" alt="" class="spin" title=
|
584
|
+
"Mouse over the example to see the original image" /></p>
|
585
|
+
|
586
|
+
<h4>See also</h4>
|
587
|
+
<p><a href="image1.html#blur_image">blur_image</a>,
|
588
|
+
<a href="image2.html#gaussian_blur">gaussian_blur</a>,
|
589
|
+
<a href="image2.html#motion_blur">motion_blur</a></p>
|
590
|
+
|
591
|
+
<h4>Magick API</h4>
|
592
|
+
|
593
|
+
<p>RadialBlurImage (available in ImageMagick 6.0.0.)</p>
|
594
|
+
</div>
|
595
|
+
|
596
|
+
<div class="sig">
|
597
|
+
<h3 id="raise">raise</h3>
|
598
|
+
|
599
|
+
<p><span class="arg">image</span>.raise(<span class=
|
600
|
+
"arg">width</span>=6, <span class="arg">height</span>=6,
|
601
|
+
<span class="arg">raised</span>=<code>true</code>) ->
|
602
|
+
<em>anImage</em></p>
|
603
|
+
</div>
|
604
|
+
|
605
|
+
<div class="desc">
|
606
|
+
<h4>Description</h4>
|
607
|
+
|
608
|
+
<p class="imquote">Creates a simulated three-dimensional
|
609
|
+
button-like effect by lightening and darkening the edges of the
|
610
|
+
image.</p>
|
611
|
+
|
612
|
+
<h4>Arguments</h4>
|
613
|
+
|
614
|
+
<dl>
|
615
|
+
<dt>width</dt>
|
616
|
+
|
617
|
+
<dd>The width of the raised edge in pixels. The default is
|
618
|
+
6.</dd>
|
619
|
+
|
620
|
+
<dt>height</dt>
|
621
|
+
|
622
|
+
<dd>The height of the raised edge in pixels. The default is
|
623
|
+
6.</dd>
|
624
|
+
|
625
|
+
<dt>raised</dt>
|
626
|
+
|
627
|
+
<dd>If <code>true</code>, the image is raised, otherwise
|
628
|
+
lowered.</dd>
|
629
|
+
</dl>
|
630
|
+
|
631
|
+
<h4>Returns</h4>
|
632
|
+
|
633
|
+
<p>A new image</p>
|
634
|
+
|
635
|
+
<h4>Example</h4>
|
636
|
+
|
637
|
+
<p class="rollover"><a href=
|
638
|
+
"javascript:popup('raise.rb.html')"><img src="ex/raise.jpg"
|
639
|
+
onmouseover="this.src='ex/images/Flower_Hat.jpg'" onmouseout=
|
640
|
+
"this.src='ex/raise.jpg'" alt="raise example" title=
|
641
|
+
"Click to see the example script" /></a> <img src=
|
642
|
+
"ex/images/spin.gif" alt="" class="spin" title=
|
643
|
+
"Mouse over the example to see the original image" /></p>
|
644
|
+
|
645
|
+
<h4>Magick API</h4>
|
646
|
+
|
647
|
+
<p>RaiseImage</p>
|
648
|
+
</div>
|
649
|
+
|
650
|
+
<div class="sig">
|
651
|
+
<h3 id="random_threshold_channel">random_threshold_channel</h3>
|
652
|
+
|
653
|
+
<p><span class="arg">image</span>.random_threshold_channel(
|
654
|
+
<span class="arg">thresholds</span>, [<span class=
|
655
|
+
"arg">channel</span>, <span class="arg">channel</span>...] )
|
656
|
+
-> <em>anImage</em></p>
|
657
|
+
</div>
|
658
|
+
|
659
|
+
<div class="desc">
|
660
|
+
<h4>Description</h4>
|
661
|
+
|
662
|
+
<p class="imquote">Changes the value of individual pixels based
|
663
|
+
on the intensity of each pixel compared to a random threshold.
|
664
|
+
The result is a low-contrast, two color image.</p>
|
665
|
+
|
666
|
+
<h4>Arguments</h4>
|
667
|
+
|
668
|
+
<dl>
|
669
|
+
<dt>thresholds</dt>
|
670
|
+
|
671
|
+
<dd><span class="imquote">A geometry string containing
|
672
|
+
LOWxHIGH thresholds.</span> The string is in the form `XxY'.
|
673
|
+
The Y value may be omitted, in which case it is assigned the
|
674
|
+
value MaxRGB-X. If an % appears in the string then the values
|
675
|
+
are assumed to be percentages of MaxRGB. <span class=
|
676
|
+
"imquote">If the string contains 2x2, 3x3, or 4x4, then an
|
677
|
+
ordered dither of order 2, 3, or 4 will be performed
|
678
|
+
instead.</span> A <a href="struct.html#Geometry">Geometry</a>
|
679
|
+
object may be used as well.</dd>
|
680
|
+
|
681
|
+
<dt>channel...</dt>
|
682
|
+
|
683
|
+
<dd>0 or more <a href=
|
684
|
+
"constants.html#ChannelType">ChannelType</a> arguments. If no
|
685
|
+
channels are specified, all the channels are
|
686
|
+
thresholded.</dd>
|
687
|
+
</dl>
|
688
|
+
|
689
|
+
<h4>Returns</h4>
|
690
|
+
|
691
|
+
<p>A new image</p>
|
692
|
+
|
693
|
+
<h4>Example</h4>
|
694
|
+
<pre>
|
695
|
+
geom = Geometry.new(MaxRGB/2)
|
696
|
+
random_threshold_channel(geom, RedChannel)
|
697
|
+
</pre>
|
698
|
+
|
699
|
+
<p class="rollover"><a href=
|
700
|
+
"javascript:popup('random_threshold_channel.rb.html')"><img src="ex/random_threshold_channel.jpg"
|
701
|
+
alt="random_threshold_channel example" title=
|
702
|
+
"Click to see the example script" onmouseover=
|
703
|
+
"this.src='ex/images/Flower_Hat.jpg'" onmouseout=
|
704
|
+
"this.src='ex/random_threshold_channel.jpg'" /></a> <img src=
|
705
|
+
"ex/images/spin.gif" alt="" class="spin" title=
|
706
|
+
"Mouse over the example to see the original image" /></p>
|
707
|
+
|
708
|
+
<h4>See also</h4><p><a href=
|
709
|
+
"image1.html#adaptive_threshold">adaptive_threshold</a>,
|
710
|
+
<a href="image1.html#channel_threshold">channel_threshold</a>,
|
711
|
+
<a href="#threshold">threshold</a></p>
|
712
|
+
|
713
|
+
<h4>Magick API</h4>
|
714
|
+
|
715
|
+
<p>RandomThresholdImageChannel (available in ImageMagick
|
716
|
+
6.0.0)</p>
|
717
|
+
</div>
|
718
|
+
|
719
|
+
<div class="sig">
|
720
|
+
<h3 id="reduce_noise">reduce_noise</h3>
|
721
|
+
|
722
|
+
<p><span class="arg">image</span>.reduce_noise(<span class=
|
723
|
+
"arg">radius</span>) -> <em>anImage</em></p>
|
724
|
+
</div>
|
725
|
+
|
726
|
+
<div class="desc">
|
727
|
+
<h4>Description</h4>
|
728
|
+
|
729
|
+
<p class="imquote">Smooths the contours of an image while still
|
730
|
+
preserving edge information. The algorithm works by replacing
|
731
|
+
each pixel with its neighbor closest in value.</p>
|
732
|
+
|
733
|
+
<h4>Arguments</h4>
|
734
|
+
|
735
|
+
<dl>
|
736
|
+
<dt>radius</dt>
|
737
|
+
|
738
|
+
<dd class="imquote">A neighbor is defined by radius. Use a
|
739
|
+
radius of 0 and <code>reduce_noise</code> selects a suitable
|
740
|
+
radius for you.</dd>
|
741
|
+
</dl>
|
742
|
+
|
743
|
+
<h4>Returns</h4>
|
744
|
+
|
745
|
+
<p>A new image</p>
|
746
|
+
|
747
|
+
<h4>Example</h4>
|
748
|
+
|
749
|
+
<p>The left side of the image has been modified by <a href=
|
750
|
+
"#Image.add_noise"><code>add_noise</code></a>. The right side
|
751
|
+
has been filtered by <code>reduce_noise(0)</code>.</p>
|
752
|
+
|
753
|
+
<p><a href="javascript:popup('reduce_noise.rb.html')"><img src=
|
754
|
+
"ex/reduce_noise.jpg" title="Click to see the example script"
|
755
|
+
alt="reduce_noise example" /></a></p>
|
756
|
+
|
757
|
+
<h4>See also</h4>
|
758
|
+
|
759
|
+
<p><a href="image2.html#enhance">enhance</a>, <a href=
|
760
|
+
"#unsharp_mask">unsharp_mask</a></p>
|
761
|
+
|
762
|
+
<h4>Magick API</h4>
|
763
|
+
|
764
|
+
<p>ReduceNoiseImage</p>
|
765
|
+
</div>
|
766
|
+
|
767
|
+
<div class="sig">
|
768
|
+
<h3 id="resize">resize</h3>
|
769
|
+
|
770
|
+
<p><span class="arg">image</span>.resize(<span class=
|
771
|
+
"arg">new_width</span>, <span class="arg">new_height</span>,
|
772
|
+
<span class="arg">filter</span>=<a href=
|
773
|
+
"constants.html#FilterType">LanczosFilter</a>, <span class=
|
774
|
+
"arg">blur</span>=1.0) -> <em>anImage</em><br />
|
775
|
+
<span class="arg">image</span>.resize(<span class=
|
776
|
+
"arg">scale_factor</span>) -> <em>anImage</em></p>
|
777
|
+
</div>
|
778
|
+
|
779
|
+
<div class="desc">
|
780
|
+
<h4>Description</h4>
|
781
|
+
|
782
|
+
<p>Changes the size of the receiver to the specified
|
783
|
+
dimensions.</p>
|
784
|
+
|
785
|
+
<h4>Arguments</h4>
|
786
|
+
|
787
|
+
<p>You can specify the new size in two ways. Either specify the
|
788
|
+
new width and height explicitly, or specify a <em>scale
|
789
|
+
factor</em>, a number that represents the percentage
|
790
|
+
change.</p>
|
791
|
+
|
792
|
+
<p>Use the <a href=
|
793
|
+
"image1.html#change_geometry">change_geometry</a> method to
|
794
|
+
resize an image with constraints such as "maintain the current
|
795
|
+
proportions."</p>
|
796
|
+
|
797
|
+
<dl>
|
798
|
+
<dt>new_width, new_height</dt>
|
799
|
+
|
800
|
+
<dd>The desired width and height.</dd>
|
801
|
+
|
802
|
+
<dt>filter</dt>
|
803
|
+
|
804
|
+
<dd>The <a href="constants.html#FilterType">filter</a> to use
|
805
|
+
when resizing. If you do not specify a filter argument,
|
806
|
+
resize uses the value of the receiver's <a href=
|
807
|
+
"imageattrs.html#Image.filter">filter attribute</a>.
|
808
|
+
<span class="imquote">Most of the filters are FIR (finite
|
809
|
+
impulse response), however, Bessel, Gaussian, and Sinc are
|
810
|
+
IIR (infinite impulse response). Bessel and Sinc are windowed
|
811
|
+
(brought down to zero) with the Blackman filter.</span></dd>
|
812
|
+
|
813
|
+
<dt>blur</dt>
|
814
|
+
|
815
|
+
<dd>The blur factor. Values > 1 increase the blurriness.
|
816
|
+
Values < 1 increase the sharpness. If this argument is not
|
817
|
+
specified, <code>resize</code> uses the value of the
|
818
|
+
receiver's <a href="imageattrs.html#Image.blur">blur</a>
|
819
|
+
attribute.</dd>
|
820
|
+
|
821
|
+
<dt>scale_factor</dt>
|
822
|
+
|
823
|
+
<dd>You can use this argument instead of specifying the
|
824
|
+
desired width and height. The percentage size change. For
|
825
|
+
example, 1.25 makes the new image 125% of the size of the
|
826
|
+
receiver. The scale factor 0.5 makes the new image 50% of the
|
827
|
+
size of the receiver.</dd>
|
828
|
+
</dl>
|
829
|
+
|
830
|
+
<h4>Returns</h4>
|
831
|
+
|
832
|
+
<p>A new image</p>
|
833
|
+
|
834
|
+
<h4>See also</h4>
|
835
|
+
|
836
|
+
<p><a href="image1.html#change_geometry">change_geometry</a>
|
837
|
+
<a href="#resize_bang">resize!</a>, <a href=
|
838
|
+
"image2.html#magnify">magnify</a>, <a href=
|
839
|
+
"image2.html#minify">minify</a>, <a href="#sample">sample</a>,
|
840
|
+
<a href="#scale">scale</a>, <a href=
|
841
|
+
"thumbnail">thumbnail</a></p>
|
842
|
+
|
843
|
+
<h4>Magick API</h4>
|
844
|
+
|
845
|
+
<p>ResizeImage</p>
|
846
|
+
</div>
|
847
|
+
|
848
|
+
<div class="sig">
|
849
|
+
<h3 id="resize_bang">resize!</h3>
|
850
|
+
|
851
|
+
<p><em>image</em>.resize!(<em>new_width</em>,
|
852
|
+
<em>new_height</em>, <em>filter</em>=<a href=
|
853
|
+
"constants.html#FilterType">LanczosFilter</a>,
|
854
|
+
<em>blur</em>=1.0) -> <em>image</em><br />
|
855
|
+
<span class="arg">image</span>.resize!(<span class=
|
856
|
+
"arg">scale_factor</span>) -> <em>image</em></p>
|
857
|
+
</div>
|
858
|
+
|
859
|
+
<div class="desc">
|
860
|
+
<h4>Description</h4>
|
861
|
+
|
862
|
+
<p>In-place form of <a href="#Image.resize">resize</a>.</p>
|
863
|
+
|
864
|
+
<h4>Returns</h4>
|
865
|
+
|
866
|
+
<p>self</p>
|
867
|
+
</div>
|
868
|
+
|
869
|
+
<div class="sig">
|
870
|
+
<h3 id="roll">roll</h3>
|
871
|
+
|
872
|
+
<p><span class="arg">image</span>.roll(<span class=
|
873
|
+
"arg">x_offset</span>, <span class="arg">y_offset</span>) ->
|
874
|
+
<em>anImage</em></p>
|
875
|
+
</div>
|
876
|
+
|
877
|
+
<div class="desc">
|
878
|
+
<h4>Description</h4>
|
879
|
+
|
880
|
+
<p class="imquote">Offsets an image as defined by <span class=
|
881
|
+
"arg">x_offset</span> and <span class=
|
882
|
+
"arg">y_offset</span>.</p>
|
883
|
+
|
884
|
+
<h4>Arguments</h4>
|
885
|
+
|
886
|
+
<dl>
|
887
|
+
<dt>x_offset</dt>
|
888
|
+
|
889
|
+
<dd>The number of columns to offset the image.</dd>
|
890
|
+
|
891
|
+
<dt>y_offset</dt>
|
892
|
+
|
893
|
+
<dd>The number of rows to offset the image.</dd>
|
894
|
+
</dl>
|
895
|
+
|
896
|
+
<h4>Returns</h4>
|
897
|
+
|
898
|
+
<p>A new image</p>
|
899
|
+
|
900
|
+
<h4>Example</h4>
|
901
|
+
|
902
|
+
<p>This image has been offset 25% in both directions.</p>
|
903
|
+
|
904
|
+
<p class="rollover"><a href=
|
905
|
+
"javascript:popup('roll.rb.html')"><img src="ex/roll.jpg"
|
906
|
+
title="Click to see the example script" alt="roll example"
|
907
|
+
onmouseover="this.src='ex/images/Flower_Hat.jpg'" onmouseout=
|
908
|
+
"this.src='ex/roll.jpg'" /></a><img src="ex/images/spin.gif"
|
909
|
+
alt="" class="spin" title=
|
910
|
+
"Mouse over the example to see the original image" /></p>
|
911
|
+
|
912
|
+
<h4>Magick API</h4>
|
913
|
+
|
914
|
+
<p>RollImage</p>
|
915
|
+
</div>
|
916
|
+
|
917
|
+
<div class="sig">
|
918
|
+
<h3 id="rotate">rotate</h3>
|
919
|
+
|
920
|
+
<p><span class="arg">image</span>.rotate(<span class=
|
921
|
+
"arg">amount</span>) -> <em>anImage</em></p>
|
922
|
+
</div>
|
923
|
+
|
924
|
+
<div class="desc">
|
925
|
+
<h4>Description</h4>
|
926
|
+
|
927
|
+
<p>Rotate the receiver by the specified angle. <span class=
|
928
|
+
"imquote">Positive angles rotate counter-clockwise (right-hand
|
929
|
+
rule), while negative angles rotate clockwise. Rotated images
|
930
|
+
are usually larger than the originals and have "empty"
|
931
|
+
triangular corners. Empty triangles left over from shearing the
|
932
|
+
image are filled with the color defined by the pixel at
|
933
|
+
location (0,0).</span></p>
|
934
|
+
|
935
|
+
<h4>Arguments</h4>
|
936
|
+
|
937
|
+
<p>The number of degrees to rotate the image.</p>
|
938
|
+
|
939
|
+
<h4>Returns</h4>
|
940
|
+
|
941
|
+
<p>A new image</p>
|
942
|
+
|
943
|
+
<h4>Example</h4>
|
944
|
+
|
945
|
+
<p class="rollover"><a href=
|
946
|
+
"javascript:popup('rotate_f.rb.html')"><!--
|
947
|
+
This img tag displays the original image when the mouse is over.
|
948
|
+
Use CSS to add padding around the image to make it occupy the
|
949
|
+
same space as the rotated image. --><img style="padding-top:34px;padding-bottom:34px; display:none"
|
950
|
+
id="notrotated" onmouseout=
|
951
|
+
"this.style.display='none'; rotated.style.display='';" src=
|
952
|
+
"ex/images/Flower_Hat.jpg" alt="rotate example" title=
|
953
|
+
"Click to see the example script" /><!--
|
954
|
+
This img tag displays the rotated image.
|
955
|
+
--><img class="hide"
|
956
|
+
id="rotated" onmouseover=
|
957
|
+
"this.style.display='none'; notrotated.style.display='';" src=
|
958
|
+
"ex/rotate_f.jpg" alt="rotate example" /></a>
|
959
|
+
<img src="ex/images/spin.gif" alt="" class="spin" style=
|
960
|
+
"left:322px;" title=
|
961
|
+
"Mouse over the example to see the original image" /></p>
|
962
|
+
|
963
|
+
<h4>See also</h4>
|
964
|
+
|
965
|
+
<p><a href="image1.html#affine_transform">affine_transform</a>,
|
966
|
+
<a href="#shear">shear</a></p>
|
967
|
+
|
968
|
+
<h4>Magick API</h4>
|
969
|
+
|
970
|
+
<p>RotateImage</p>
|
971
|
+
</div>
|
972
|
+
|
973
|
+
<div class="sig">
|
974
|
+
<h3 id="rotate_bang">rotate!</h3>
|
975
|
+
|
976
|
+
<p><span class="arg">image</span>.rotate!(<span class=
|
977
|
+
"arg">amount</span>) -> <em>image</em></p>
|
978
|
+
</div>
|
979
|
+
|
980
|
+
<div class="desc">
|
981
|
+
<h4>Description</h4>
|
982
|
+
|
983
|
+
<p>In-place form of <a href="#rotate">rotate</a>.</p>
|
984
|
+
|
985
|
+
<h4>Returns</h4>
|
986
|
+
|
987
|
+
<p>self</p>
|
988
|
+
</div>
|
989
|
+
|
990
|
+
<div class="sig">
|
991
|
+
<h3 id="sample">sample</h3>
|
992
|
+
|
993
|
+
<p><span class="arg">image</span>.sample(<span class=
|
994
|
+
"arg">new_width</span>, <span class="arg">new_height</span>)
|
995
|
+
-> <span class="arg">anImage</span><br />
|
996
|
+
<span class="arg">image</span>.sample(<span class=
|
997
|
+
"arg">scale_factor</span>) -> <em>anImage</em></p>
|
998
|
+
</div>
|
999
|
+
|
1000
|
+
<div class="desc">
|
1001
|
+
<h4>Description</h4>
|
1002
|
+
|
1003
|
+
<p>Scales an image to the desired dimensions with pixel
|
1004
|
+
sampling. Unlike other scaling methods, this method does not
|
1005
|
+
introduce any additional color into the scaled image.</p>
|
1006
|
+
|
1007
|
+
<h4>Arguments</h4>
|
1008
|
+
|
1009
|
+
<dl>
|
1010
|
+
<dt>new_width, new_height</dt>
|
1011
|
+
|
1012
|
+
<dd>The desired width and height.</dd>
|
1013
|
+
|
1014
|
+
<dt>scale_factor</dt>
|
1015
|
+
|
1016
|
+
<dd>You can use this argument instead of specifying the
|
1017
|
+
desired width and height. The percentage size change. For
|
1018
|
+
example, 1.25 makes the new image 125% of the size of the
|
1019
|
+
receiver. The scale factor 0.5 makes the new image 50% of the
|
1020
|
+
size of the receiver.</dd>
|
1021
|
+
</dl>
|
1022
|
+
|
1023
|
+
<h4>Returns</h4>
|
1024
|
+
|
1025
|
+
<p>A new image</p>
|
1026
|
+
|
1027
|
+
<h4>See also</h4>
|
1028
|
+
|
1029
|
+
<p><a href="#sample_bang">sample!</a>, <a href=
|
1030
|
+
"image2.html#magnify">magnify</a>, <a href=
|
1031
|
+
"image2.html#minify">minify</a>, <a href="#resize">resize</a>,
|
1032
|
+
<a href="#scale">scale</a>, <a href=
|
1033
|
+
"#thumbnail">thumbnail</a></p>
|
1034
|
+
|
1035
|
+
<h4>Magick API</h4>
|
1036
|
+
|
1037
|
+
<p>SampleImage</p>
|
1038
|
+
</div>
|
1039
|
+
|
1040
|
+
<div class="sig">
|
1041
|
+
<h3 id="sample_bang">sample!</h3>
|
1042
|
+
|
1043
|
+
<p><span class="arg">image</span>.sample!(<span class=
|
1044
|
+
"arg">new_width</span>, <span class="arg">new_height</span>)
|
1045
|
+
-> <em>image</em><br />
|
1046
|
+
<span class="arg">image</span>.sample!(<span class=
|
1047
|
+
"arg">scale_factor</span>) -> <em>image</em></p>
|
1048
|
+
</div>
|
1049
|
+
|
1050
|
+
<div class="desc">
|
1051
|
+
<h4>Description</h4>
|
1052
|
+
|
1053
|
+
<p>In-place form of <a href="#sample">sample</a>.</p>
|
1054
|
+
|
1055
|
+
<h4>Returns</h4>
|
1056
|
+
|
1057
|
+
<p>self</p>
|
1058
|
+
</div>
|
1059
|
+
|
1060
|
+
<div class="sig">
|
1061
|
+
<h3 id="scale">scale</h3>
|
1062
|
+
|
1063
|
+
<p><span class="arg">image</span>.scale(<span class=
|
1064
|
+
"arg">new_width</span>, <span class="arg">new_height</span>)
|
1065
|
+
-> <em>anImage</em><br />
|
1066
|
+
<span class="arg">image</span>.scale(<span class=
|
1067
|
+
"arg">scale_factor</span>) -> <em>anImage</em></p>
|
1068
|
+
</div>
|
1069
|
+
|
1070
|
+
<div class="desc">
|
1071
|
+
<h4>Description</h4>
|
1072
|
+
|
1073
|
+
<p class="imquote">Changes the size of an image to the given
|
1074
|
+
dimensions.</p>
|
1075
|
+
|
1076
|
+
<h4>Arguments</h4>
|
1077
|
+
|
1078
|
+
<dl>
|
1079
|
+
<dt>new_width, new_height</dt>
|
1080
|
+
|
1081
|
+
<dd>The desired width and height.</dd>
|
1082
|
+
|
1083
|
+
<dt>scale_factor</dt>
|
1084
|
+
|
1085
|
+
<dd>You can use this argument instead of specifying the
|
1086
|
+
desired width and height. The percentage size change. For
|
1087
|
+
example, 1.25 makes the new image 125% of the size of the
|
1088
|
+
receiver. The scale factor 0.5 makes the new image 50% of the
|
1089
|
+
size of the receiver.</dd>
|
1090
|
+
</dl>
|
1091
|
+
|
1092
|
+
<h4>Returns</h4>
|
1093
|
+
|
1094
|
+
<p>A new image</p>
|
1095
|
+
|
1096
|
+
<h4>See also</h4><p><a href="#scale_bang">scale!</a>, <a href=
|
1097
|
+
"image2.html#magnify">magnify</a>, <a href=
|
1098
|
+
"image2.html#minify">minify</a>, <a href="#resize">resize</a>,
|
1099
|
+
<a href="#sample">sample</a>, <a href=
|
1100
|
+
"#thumbnail">thumbnail</a></p>
|
1101
|
+
|
1102
|
+
<h4>Magick API</h4>
|
1103
|
+
|
1104
|
+
<p>ScaleImage</p>
|
1105
|
+
</div>
|
1106
|
+
|
1107
|
+
<div class="sig">
|
1108
|
+
<h3 id="scale_bang">scale!</h3>
|
1109
|
+
|
1110
|
+
<p><span class="arg">image</span>.scale!(<span class=
|
1111
|
+
"arg">new_width</span>, <span class="arg">new_height</span>)
|
1112
|
+
-> <em>image</em><br />
|
1113
|
+
<span class="arg">image</span>.scale!(<span class=
|
1114
|
+
"arg">scale_factor</span>) -> <em>image</em></p>
|
1115
|
+
</div>
|
1116
|
+
|
1117
|
+
<div class="desc">
|
1118
|
+
<h4>Description</h4>
|
1119
|
+
|
1120
|
+
<p>In-place form of <a href="#Image.scale">scale</a>.</p>
|
1121
|
+
|
1122
|
+
<h4>Returns</h4>
|
1123
|
+
|
1124
|
+
<p>self</p>
|
1125
|
+
</div>
|
1126
|
+
|
1127
|
+
<div class="sig">
|
1128
|
+
<h3 id="segment">segment</h3>
|
1129
|
+
|
1130
|
+
<p>image.segment(<span class=
|
1131
|
+
"arg">colorspace</span>=RGBColorspace, <span class=
|
1132
|
+
"arg">cluster_threshold</span>=1.0, <span class=
|
1133
|
+
"arg">smoothing_threshold</span>=1.5, <span class=
|
1134
|
+
"arg">verbose</span>=<code>false</code>) ->
|
1135
|
+
<em>anImage</em></p>
|
1136
|
+
</div>
|
1137
|
+
|
1138
|
+
<div class="desc">
|
1139
|
+
<h4>Description</h4>
|
1140
|
+
|
1141
|
+
<p class="imquote">Segments an image by analyzing the
|
1142
|
+
histograms of the color components and identifying units that
|
1143
|
+
are homogeneous with the fuzzy c-means technique.</p>
|
1144
|
+
|
1145
|
+
<h4>Arguments</h4>
|
1146
|
+
|
1147
|
+
<dl>
|
1148
|
+
<dt>colorspace</dt>
|
1149
|
+
|
1150
|
+
<dd>A <a href=
|
1151
|
+
"constants.html#ColorspaceType"><code>ColorspaceType</code></a>
|
1152
|
+
constant. <span class="imquote">Empirical evidence suggests
|
1153
|
+
that distances in YUV or YIQ correspond to perceptual color
|
1154
|
+
differences more closely than do distances in RGB space. The
|
1155
|
+
image is then returned to RGB colorspace after color
|
1156
|
+
reduction.</span></dd>
|
1157
|
+
|
1158
|
+
<dt>cluster_threshold</dt>
|
1159
|
+
|
1160
|
+
<dd class="imquote">The number of pixels in each cluster must
|
1161
|
+
exceed the the cluster threshold to be considered valid.</dd>
|
1162
|
+
|
1163
|
+
<dt>smoothing_threshold</dt>
|
1164
|
+
|
1165
|
+
<dd>The <span class="imquote">smoothing threshold eliminates
|
1166
|
+
noise in the second derivative of the histogram. As the value
|
1167
|
+
is increased, you can expect a smoother second
|
1168
|
+
derivative.</span></dd>
|
1169
|
+
|
1170
|
+
<dt>verbose</dt>
|
1171
|
+
|
1172
|
+
<dd>If <code>true</code>, <code>segment</code> prints
|
1173
|
+
detailed information about the identified classes.</dd>
|
1174
|
+
</dl>
|
1175
|
+
|
1176
|
+
<h4>Returns</h4>
|
1177
|
+
|
1178
|
+
<p>A new image</p>
|
1179
|
+
|
1180
|
+
<h4>Example</h4>
|
1181
|
+
|
1182
|
+
<p><code>segment(Magick::YUVColorspace, 0.4, 0.4)</code></p>
|
1183
|
+
|
1184
|
+
<p class="rollover"><a href=
|
1185
|
+
"javascript:popup('segment.rb.html')"><img src="ex/segment.jpg"
|
1186
|
+
alt="segment example" title="Click to see the example script"
|
1187
|
+
onmouseover="this.src='ex/images/Flower_Hat.jpg'" onmouseout=
|
1188
|
+
"this.src='ex/segment.jpg'" /></a> <img src=
|
1189
|
+
"ex/images/spin.gif" alt="" class="spin" title=
|
1190
|
+
"Mouse over the example to see the original image" /></p>
|
1191
|
+
|
1192
|
+
<h4>Magick API</h4>
|
1193
|
+
|
1194
|
+
<p>SegmentImage</p>
|
1195
|
+
</div>
|
1196
|
+
|
1197
|
+
<div class="sig">
|
1198
|
+
<h3 id="set_channel_depth">set_channel_depth</h3>
|
1199
|
+
|
1200
|
+
<p><span class=
|
1201
|
+
"arg">image.</span>set_channel_depth(<span class="arg">channel</span>,
|
1202
|
+
<span class="arg">depth</span>) -> <em>self</em></p>
|
1203
|
+
</div>
|
1204
|
+
|
1205
|
+
<div class="desc">
|
1206
|
+
<h4>Description</h4>
|
1207
|
+
|
1208
|
+
<p>Sets the depth of the image channel.</p>
|
1209
|
+
|
1210
|
+
<h4>Arguments</h4>
|
1211
|
+
|
1212
|
+
<dl>
|
1213
|
+
<dt>channel</dt>
|
1214
|
+
|
1215
|
+
<dd>A <a href="constants.html#ChannelType">ChannelType</a>
|
1216
|
+
value</dd>
|
1217
|
+
|
1218
|
+
<dt>depth</dt>
|
1219
|
+
|
1220
|
+
<dd>The desired depth (must be no greater than <a href=
|
1221
|
+
"constants.html">QuantumDepth</a>)</dd>
|
1222
|
+
</dl>
|
1223
|
+
|
1224
|
+
<h4>Returns</h4>
|
1225
|
+
|
1226
|
+
<p>self</p>
|
1227
|
+
|
1228
|
+
<h4>See also</h4><p><a href=
|
1229
|
+
"image1.html#channel_depth">channel_depth</a></p>
|
1230
|
+
|
1231
|
+
<h4>Magick API</h4>
|
1232
|
+
|
1233
|
+
<p>SetImageChannelDepth (available in ImageMagick 6.0.0,
|
1234
|
+
GraphicsMagick 1.1)</p>
|
1235
|
+
</div>
|
1236
|
+
|
1237
|
+
<div class="sig">
|
1238
|
+
<h3 id="shade">shade</h3>
|
1239
|
+
|
1240
|
+
<p><span class="arg">image</span>.shade(<span class=
|
1241
|
+
"arg">shading</span>=<code>false</code>, <span class=
|
1242
|
+
"arg">azimuth</span>=30, <span class="arg">elevation</span>=30)
|
1243
|
+
-> <em>anImage</em></p>
|
1244
|
+
</div>
|
1245
|
+
|
1246
|
+
<div class="desc">
|
1247
|
+
<h4>Description</h4>
|
1248
|
+
|
1249
|
+
<p class="imquote">Shines a distant light on an image to create
|
1250
|
+
a three-dimensional effect. You control the positioning of the
|
1251
|
+
light with <span class="arg">azimuth</span> and <span class=
|
1252
|
+
"arg">elevation</span>; <span class="arg">azimuth</span> is
|
1253
|
+
measured in degrees off the x axis and <span class=
|
1254
|
+
"arg">elevation</span> is measured in pixels above the Z
|
1255
|
+
axis.</p>
|
1256
|
+
|
1257
|
+
<h4>Arguments</h4>
|
1258
|
+
|
1259
|
+
<dl>
|
1260
|
+
<dt>shading</dt>
|
1261
|
+
|
1262
|
+
<dd>If <code>true</code>, <code>shade</code> shades the
|
1263
|
+
intensity of each pixel.</dd>
|
1264
|
+
|
1265
|
+
<dt>azimuth, elevation</dt>
|
1266
|
+
|
1267
|
+
<dd>The light source direction.</dd>
|
1268
|
+
</dl>
|
1269
|
+
|
1270
|
+
<h4>Returns</h4>
|
1271
|
+
|
1272
|
+
<p>A new image</p>
|
1273
|
+
|
1274
|
+
<h4>Example</h4>
|
1275
|
+
|
1276
|
+
<p><code>shade(true, 50, 50)</code></p>
|
1277
|
+
|
1278
|
+
<p class="rollover"><a href=
|
1279
|
+
"javascript:popup('shade.rb.html')"><img src="ex/shade.jpg"
|
1280
|
+
alt="shade example" onmouseover=
|
1281
|
+
"this.src='ex/images/Flower_Hat.jpg'" onmouseout=
|
1282
|
+
"this.src='ex/shade.jpg'" title=
|
1283
|
+
"Click to see the example script" /></a> <img src=
|
1284
|
+
"ex/images/spin.gif" alt="" class="spin" title=
|
1285
|
+
"Mouse over the example to see the original image" /></p>
|
1286
|
+
|
1287
|
+
<h4>Magick API</h4>
|
1288
|
+
|
1289
|
+
<p>ShadeImage</p>
|
1290
|
+
</div>
|
1291
|
+
|
1292
|
+
<div class="sig">
|
1293
|
+
<h3 id="sharpen">sharpen</h3>
|
1294
|
+
|
1295
|
+
<p><span class="arg">image</span>.sharpen(<span class=
|
1296
|
+
"arg">radius</span>=0.0, <span class="arg">sigma</span>=1.0)
|
1297
|
+
-> <em>anImage</em></p>
|
1298
|
+
</div>
|
1299
|
+
|
1300
|
+
<div class="desc">
|
1301
|
+
<h4>Description</h4>
|
1302
|
+
|
1303
|
+
<p class="imquote">Sharpens an image. We convolve the image
|
1304
|
+
with a Gaussian operator of the given <span class=
|
1305
|
+
"arg">radius</span> and standard deviation (<span class=
|
1306
|
+
"arg">sigma</span>). For reasonable results, <span class=
|
1307
|
+
"arg">radius</span> should be larger than <span class=
|
1308
|
+
"arg">sigma</span>. Use a radius of 0 and <code>sharpen</code>
|
1309
|
+
selects a suitable radius for you.</p>
|
1310
|
+
|
1311
|
+
<h4>Arguments</h4>
|
1312
|
+
|
1313
|
+
<p>The radius and standard deviation of the Gaussian
|
1314
|
+
operator.</p>
|
1315
|
+
|
1316
|
+
<h4>Returns</h4>
|
1317
|
+
|
1318
|
+
<p>A new image</p>
|
1319
|
+
|
1320
|
+
<h4>Magick API</h4>
|
1321
|
+
|
1322
|
+
<p>SharpenImage</p>
|
1323
|
+
</div>
|
1324
|
+
|
1325
|
+
<div class="sig">
|
1326
|
+
<h3 id="sharpen_channel">sharpen_channel</h3>
|
1327
|
+
|
1328
|
+
<p><span class="arg">image</span>.sharpen_channel( <span class=
|
1329
|
+
"arg">radius</span>, <span class="arg">sigma</span>
|
1330
|
+
[,<span class="arg">channel</span>, <span class=
|
1331
|
+
"arg">channel</span>...] ) -> <em>anImage</em></p>
|
1332
|
+
</div>
|
1333
|
+
|
1334
|
+
<div class="desc">
|
1335
|
+
<h4>Description</h4>
|
1336
|
+
|
1337
|
+
<p class="imquote">Sharpens one or more image channels. We
|
1338
|
+
convolve the image with a Gaussian operator of the given radius
|
1339
|
+
and standard deviation (<span class="arg">sigma</span>) . For
|
1340
|
+
reasonable results, <span class="arg">radius</span> should be
|
1341
|
+
larger than <span class="arg">sigma</span>. Use a radius of 0
|
1342
|
+
and <code>sharpen_channel</code> selects a suitable radius for
|
1343
|
+
you.</p>
|
1344
|
+
|
1345
|
+
<h4>Arguments</h4>
|
1346
|
+
|
1347
|
+
<dl>
|
1348
|
+
<dt>radius, sigma</dt>
|
1349
|
+
|
1350
|
+
<dd>The radius and standard deviation of the Gaussian
|
1351
|
+
operator.</dd>
|
1352
|
+
|
1353
|
+
<dt>channel...</dt>
|
1354
|
+
|
1355
|
+
<dd>0 or more <a href=
|
1356
|
+
"constants.html#ChannelType">ChannelType</a> arguments. If no
|
1357
|
+
channels are specified, all the channels are sharpened.</dd>
|
1358
|
+
</dl>
|
1359
|
+
|
1360
|
+
<h4>Returns</h4>
|
1361
|
+
|
1362
|
+
<p>A new image</p>
|
1363
|
+
|
1364
|
+
<h4>See also</h4>
|
1365
|
+
|
1366
|
+
<p><a href="#sharpen">sharpen</a></p>
|
1367
|
+
|
1368
|
+
<h4>Magick API</h4>
|
1369
|
+
|
1370
|
+
<p>SharpenImageChannel (available in ImageMagick 6.0.1)</p>
|
1371
|
+
</div>
|
1372
|
+
|
1373
|
+
<div class="sig">
|
1374
|
+
<h3 id="shave">shave</h3>
|
1375
|
+
|
1376
|
+
<p><span class="arg">image</span>.shave(<span class=
|
1377
|
+
"arg">width</span>, <span class="arg">height</span>) ->
|
1378
|
+
<em>anImage</em></p>
|
1379
|
+
</div>
|
1380
|
+
|
1381
|
+
<div class="desc">
|
1382
|
+
<h4>Description</h4>
|
1383
|
+
|
1384
|
+
<p>Removes pixels from the edges of the image, leaving the
|
1385
|
+
center rectangle.</p>
|
1386
|
+
|
1387
|
+
<h4>Arguments</h4>
|
1388
|
+
|
1389
|
+
<dl>
|
1390
|
+
<dt>width</dt>
|
1391
|
+
|
1392
|
+
<dd>The number of pixels to remove from each side of the
|
1393
|
+
receiver, not to exceed half the original width.</dd>
|
1394
|
+
|
1395
|
+
<dt>height</dt>
|
1396
|
+
|
1397
|
+
<dd>The number of pixels to remove from the top and bottom of
|
1398
|
+
the receiver, not to exceed half the original height.</dd>
|
1399
|
+
</dl>
|
1400
|
+
|
1401
|
+
<h4>Returns</h4>
|
1402
|
+
|
1403
|
+
<p>A new image</p>
|
1404
|
+
|
1405
|
+
<h4>Example</h4>
|
1406
|
+
|
1407
|
+
<p class="rollover"><a href=
|
1408
|
+
"javascript:popup('shave.rb.html')"><img src="ex/shave.jpg"
|
1409
|
+
onmouseover="this.src='ex/images/Flower_Hat.jpg'" onmouseout=
|
1410
|
+
"this.src='ex/shave.jpg'" alt="shave example" title=
|
1411
|
+
"Click to see the example script" /></a> <img src=
|
1412
|
+
"ex/images/spin.gif" alt="" class="spin" title=
|
1413
|
+
"Mouse over the example to see the original image" /></p>
|
1414
|
+
|
1415
|
+
<h4>See also</h4><p><a href="#shave_bang">shave!</a>, <a href=
|
1416
|
+
"image1.html#crop">crop</a></p>
|
1417
|
+
|
1418
|
+
<h4>Magick API</h4>
|
1419
|
+
|
1420
|
+
<p>ShaveImage</p>
|
1421
|
+
</div>
|
1422
|
+
|
1423
|
+
<div class="sig">
|
1424
|
+
<h3 id="shave_bang">shave!</h3>
|
1425
|
+
|
1426
|
+
<p><span class="arg">image</span>.shave!(<span class=
|
1427
|
+
"arg">width</span>, <span class="arg">height</span>) ->
|
1428
|
+
<em>image</em></p>
|
1429
|
+
</div>
|
1430
|
+
|
1431
|
+
<div class="desc">
|
1432
|
+
<h4>Description</h4>
|
1433
|
+
|
1434
|
+
<p>In-place form of <a href="#Image.shave">shave</a>.</p>
|
1435
|
+
|
1436
|
+
<h4>Returns</h4>
|
1437
|
+
|
1438
|
+
<p>self</p>
|
1439
|
+
</div>
|
1440
|
+
|
1441
|
+
<div class="sig">
|
1442
|
+
<h3 id="shear">shear</h3>
|
1443
|
+
|
1444
|
+
<p><span class="arg">image</span>.shear(<span class=
|
1445
|
+
"arg">x_shear</span>, <span class="arg">y_shear</span>) ->
|
1446
|
+
<em>anImage</em></p>
|
1447
|
+
</div>
|
1448
|
+
|
1449
|
+
<div class="desc">
|
1450
|
+
<h4>Description</h4>
|
1451
|
+
|
1452
|
+
<p class="imquote">Shearing slides one edge of an image along
|
1453
|
+
the X or Y axis, creating a parallelogram. An X direction shear
|
1454
|
+
slides an edge along the X axis, while a Y direction shear
|
1455
|
+
slides an edge along the Y axis. The amount of the shear is
|
1456
|
+
controlled by a shear angle. For X direction shears,
|
1457
|
+
<span class="arg">x_shear</span> is measured relative to the Y
|
1458
|
+
axis, and similarly, for Y direction shears <span class=
|
1459
|
+
"arg">y_shear</span> is measured relative to the X axis. Empty
|
1460
|
+
triangles left over from shearing the image are filled with the
|
1461
|
+
background color.</p>
|
1462
|
+
|
1463
|
+
<h4>Arguments</h4>
|
1464
|
+
|
1465
|
+
<p>The X and Y shear angles, measured in degrees. These values
|
1466
|
+
must not be 180.0. If either value is 0, no shearing will
|
1467
|
+
occur.</p>
|
1468
|
+
|
1469
|
+
<h4>Returns</h4>
|
1470
|
+
|
1471
|
+
<p>A new image</p>
|
1472
|
+
|
1473
|
+
<h4>Example</h4>
|
1474
|
+
|
1475
|
+
<p class="rollover"><a href=
|
1476
|
+
"javascript:popup('shear.rb.html')"><!--
|
1477
|
+
This img tag displays the original image when the mouse is over
|
1478
|
+
--><img style="padding-top:34px; padding-bottom:33px; padding-left:49px; padding-right:49px; display:none"
|
1479
|
+
id="noshear" onmouseout=
|
1480
|
+
"this.style.display='none'; sheared.style.display='';" src=
|
1481
|
+
"ex/images/Flower_Hat.jpg" alt="shear example" title=
|
1482
|
+
"Click to see the example script" /> <!--
|
1483
|
+
This img tag displays the sheared image when the mouse is not over
|
1484
|
+
-->
|
1485
|
+
<img id="sheared" onmouseover=
|
1486
|
+
"this.style.display='none'; noshear.style.display='';" src=
|
1487
|
+
"ex/shear.jpg" alt="shear example" /></a><img src="ex/images/spin.gif" alt="" class=
|
1488
|
+
"spin" style="left: 253px; top: 34px" title=
|
1489
|
+
"Mouse over the example to see the original image" /></p>
|
1490
|
+
|
1491
|
+
<h4>See also</h4><p><a href=
|
1492
|
+
"image1.html#affine_transform">affine_transform</a>, <a href=
|
1493
|
+
"#rotate">rotate</a></p>
|
1494
|
+
|
1495
|
+
<h4>Magick API</h4>
|
1496
|
+
|
1497
|
+
<p>ShearImage</p>
|
1498
|
+
</div>
|
1499
|
+
|
1500
|
+
<div class="sig">
|
1501
|
+
<h3 id="signature">signature</h3>
|
1502
|
+
|
1503
|
+
<p><span class="arg">image</span>.signature ->
|
1504
|
+
<em>aString</em></p>
|
1505
|
+
</div>
|
1506
|
+
|
1507
|
+
<div class="desc">
|
1508
|
+
<h4>Description</h4>
|
1509
|
+
|
1510
|
+
<p class="imquote">Computes a message digest from an image
|
1511
|
+
pixel stream with an implementation of the NIST SHA-256 Message
|
1512
|
+
Digest algorithm. This signature uniquely identifies the image
|
1513
|
+
and is convenient for determining if an image has been modified
|
1514
|
+
or whether two images are identical.</p>
|
1515
|
+
|
1516
|
+
<p>×Magick adds the computed signature to the image's
|
1517
|
+
properties.</p>
|
1518
|
+
|
1519
|
+
<h4>Returns</h4>
|
1520
|
+
|
1521
|
+
<p>The signature as a 64-character string.</p>
|
1522
|
+
|
1523
|
+
<h4>Example</h4>
|
1524
|
+
<pre>
|
1525
|
+
img = Image.read('ex/images/Flower_Hat.jpg').first »
|
1526
|
+
ex/images/Flower_Hat.jpg JPEG 200x250 DirectClass 8-bit 9761b
|
1527
|
+
img.properties »
|
1528
|
+
{"comment"=>"File written by Adobe Photoshop\250 4.0"}
|
1529
|
+
img.signature »
|
1530
|
+
"485e01ecba1a1f47924d67b887cb07b474f695841733796dfa3c2876965c7e8b"
|
1531
|
+
img.properties »
|
1532
|
+
{"signature"=>"485e01ecba1a1f47924d67b887cb07b474f695841733796dfa3c2876965c7e8b",
|
1533
|
+
"comment"=>"File written by Adobe Photoshop\250 4.0"}
|
1534
|
+
</pre>
|
1535
|
+
|
1536
|
+
<h4>See also</h4><p><a href="image1.html#spaceship"><=></a>,
|
1537
|
+
<a href="image1.html#difference">difference</a></p>
|
1538
|
+
|
1539
|
+
<h4>Magick API</h4>
|
1540
|
+
|
1541
|
+
<p>SignatureImage</p>
|
1542
|
+
</div>
|
1543
|
+
|
1544
|
+
<div class="sig">
|
1545
|
+
<h3 id="splice">splice</h3>
|
1546
|
+
|
1547
|
+
<p><span class="arg">image</span>.splice(<span class=
|
1548
|
+
"arg">x</span>, <span class="arg">y</span>, <span class=
|
1549
|
+
"arg">width</span>, <span class="arg">height</span>[,
|
1550
|
+
<span class="arg">color</span>]) -> <em>anImage</em></p>
|
1551
|
+
</div>
|
1552
|
+
|
1553
|
+
<div class="desc">
|
1554
|
+
<h4>Description</h4>
|
1555
|
+
|
1556
|
+
<p>Splice a solid color into the image as defined by the
|
1557
|
+
<code>x</code>, <code>y</code>, <code>width</code>, and
|
1558
|
+
<code>height</code> arguments. This method is the opposite of
|
1559
|
+
<a href="image1.html#chop">chop</a>.</p>
|
1560
|
+
|
1561
|
+
<h4>Arguments</h4>
|
1562
|
+
|
1563
|
+
<dl>
|
1564
|
+
<dt>x, y, width, height</dt>
|
1565
|
+
|
1566
|
+
<dd>Describe the rectangle to be spliced.</dd>
|
1567
|
+
|
1568
|
+
<dt>color</dt>
|
1569
|
+
|
1570
|
+
<dd>The color to be spliced. Either a <a href=
|
1571
|
+
"imusage.html#color_names">color name</a> or a <a href=
|
1572
|
+
"struct.html#Pixel">pixel</a>. If omitted, uses the image's
|
1573
|
+
background color.</dd>
|
1574
|
+
</dl>
|
1575
|
+
|
1576
|
+
<h4>Returns</h4>
|
1577
|
+
|
1578
|
+
<p>A new image</p>
|
1579
|
+
|
1580
|
+
<h4>Example</h4>
|
1581
|
+
|
1582
|
+
<p class="rollover"><a href=
|
1583
|
+
"javascript:popup('splice.rb.html')">
|
1584
|
+
<!-- This img tag displays the original image when the mouse is over -->
|
1585
|
+
<img style=
|
1586
|
+
"padding-left:8px;padding-right:8px;padding-bottom:10px;padding-bottom:10px; display:none"
|
1587
|
+
id="nosplice" onmouseout=
|
1588
|
+
"this.style.display='none';spliced.style.display='';" src=
|
1589
|
+
"ex/images/Flower_Hat.jpg" alt="splice example" title=
|
1590
|
+
"Click to see the example script" /><!--
|
1591
|
+
This img tag displays the spliced image when the mouse is not over
|
1592
|
+
--><img class="hide"
|
1593
|
+
id="spliced" onmouseover=
|
1594
|
+
"this.style.display='none';nosplice.style.display='';" src=
|
1595
|
+
"ex/splice.jpg" alt="splice example" /></a>
|
1596
|
+
<img src="ex/images/spin.gif" alt="" style=
|
1597
|
+
"margin-bottom: 280px" title=
|
1598
|
+
"Mouse over the example to see the original image" /></p>
|
1599
|
+
|
1600
|
+
<h4>See also</h4>
|
1601
|
+
|
1602
|
+
<p><a href=
|
1603
|
+
"image1.html#color_fill_to_border">color_fill_to_border</a>,
|
1604
|
+
<a href="image1.html#color_floodfill">color_floodfill</a>,
|
1605
|
+
<a href="image1.html#color_reset_bang">color_reset!</a>,
|
1606
|
+
<a href="image2.html#color_reset_bang">erase!</a>, <a href=
|
1607
|
+
"image2.html#opaque">opaque</a></p>
|
1608
|
+
|
1609
|
+
<h4>Magick API</h4>
|
1610
|
+
|
1611
|
+
<p>SpliceImage (available in ImageMagick 6.0.0)</p>
|
1612
|
+
</div>
|
1613
|
+
|
1614
|
+
<div class="sig">
|
1615
|
+
<h3 id="solarize">solarize</h3>
|
1616
|
+
|
1617
|
+
<p><span class="arg">image</span>.solarize(<span class=
|
1618
|
+
"arg">threshold</span>=50) -> <em>anImage</em></p>
|
1619
|
+
</div>
|
1620
|
+
|
1621
|
+
<div class="desc">
|
1622
|
+
<h4>Description</h4>
|
1623
|
+
|
1624
|
+
<p class="imquote">Applies a special effect to the image
|
1625
|
+
similar to the effect achieved in a photo darkroom by
|
1626
|
+
selectively exposing areas of photo sensitive paper to
|
1627
|
+
light.</p>
|
1628
|
+
|
1629
|
+
<h4>Arguments</h4>
|
1630
|
+
|
1631
|
+
<p><span class="imquote">Ranges from 0 to MaxRGB and is a
|
1632
|
+
measure of the extent of the solarization.</span> The default
|
1633
|
+
is 50.</p>
|
1634
|
+
|
1635
|
+
<h4>Returns</h4>
|
1636
|
+
|
1637
|
+
<p>A new image</p>
|
1638
|
+
|
1639
|
+
<h4>Example</h4>
|
1640
|
+
|
1641
|
+
<p class="rollover"><a href=
|
1642
|
+
"javascript:popup('solarize.rb.html')"><img src=
|
1643
|
+
"ex/solarize.jpg" title="Click to see the example script" alt=
|
1644
|
+
"solarize example" onmouseover=
|
1645
|
+
"this.src='ex/images/Flower_Hat.jpg'" onmouseout=
|
1646
|
+
"this.src='ex/solarize.jpg'" /></a> <img src=
|
1647
|
+
"ex/images/spin.gif" alt="" class="spin" title=
|
1648
|
+
"Mouse over the example to see the original image" /></p>
|
1649
|
+
|
1650
|
+
<h4>Magick API</h4>
|
1651
|
+
|
1652
|
+
<p>SolarizeImage</p>
|
1653
|
+
</div>
|
1654
|
+
|
1655
|
+
<div class="sig">
|
1656
|
+
<h3 id="spread">spread</h3>
|
1657
|
+
|
1658
|
+
<p><span class="arg">image</span>.spread(<span class=
|
1659
|
+
"arg">radius</span>=3) -> <em>anImage</em></p>
|
1660
|
+
</div>
|
1661
|
+
|
1662
|
+
<div class="desc">
|
1663
|
+
<h4>Description</h4>
|
1664
|
+
|
1665
|
+
<p class="imquote">Randomly displaces each pixel in a block
|
1666
|
+
defined by the <span class="arg"><em>radius</em></span>
|
1667
|
+
parameter.</p>
|
1668
|
+
|
1669
|
+
<h4>Returns</h4>
|
1670
|
+
|
1671
|
+
<p>A new image</p>
|
1672
|
+
|
1673
|
+
<h4>Example</h4>
|
1674
|
+
|
1675
|
+
<p class="rollover"><a href=
|
1676
|
+
"javascript:popup('spread.rb.html')"><img src="ex/spread.jpg"
|
1677
|
+
alt="spread example" title="Click to see the example script"
|
1678
|
+
onmouseover="this.src='ex/images/Flower_Hat.jpg'" onmouseout=
|
1679
|
+
"this.src='ex/spread.jpg'" /></a> <img src="ex/images/spin.gif"
|
1680
|
+
alt="" class="spin" title=
|
1681
|
+
"Mouse over the example to see the original image" /></p>
|
1682
|
+
|
1683
|
+
<h4>Magick API</h4>
|
1684
|
+
|
1685
|
+
<p>SpreadImage</p>
|
1686
|
+
</div>
|
1687
|
+
|
1688
|
+
<div class="sig">
|
1689
|
+
<h3 id="statistics">statistics</h3>
|
1690
|
+
|
1691
|
+
<p><span class="arg">image</span>.statistics -> <em>see
|
1692
|
+
below</em></p>
|
1693
|
+
</div>
|
1694
|
+
|
1695
|
+
<div class="desc">
|
1696
|
+
<h4>Description</h4>
|
1697
|
+
|
1698
|
+
<p>Computes the minimum, maximum, mean, standard deviation, and
|
1699
|
+
variance for each channel in the image.</p>
|
1700
|
+
|
1701
|
+
<h4>Returns</h4>
|
1702
|
+
|
1703
|
+
<p>The statistics method returns a <code>Statistics</code>
|
1704
|
+
class object. This class defines four <em>channel</em>
|
1705
|
+
attributes: <code>red</code>, <code>green</code>,
|
1706
|
+
<code>blue</code>, and <code>opacity</code>. Each channel
|
1707
|
+
attribute is a <code>Statistics::Channel</code> class object.
|
1708
|
+
This class defines 5 <em>statistic</em> attributes:
|
1709
|
+
<code>min</code>, <code>max</code>, <code>mean</code>
|
1710
|
+
<code>stddev</code>, and <code>var</code>. See the example
|
1711
|
+
below.</p>
|
1712
|
+
|
1713
|
+
<h4>Example</h4>
|
1714
|
+
<pre>
|
1715
|
+
require 'pp'
|
1716
|
+
|
1717
|
+
img = Image.read("Flower_Hat.jpg").first
|
1718
|
+
stats = img.statistics
|
1719
|
+
|
1720
|
+
pp stats »
|
1721
|
+
#<Magick::Statistics
|
1722
|
+
red=
|
1723
|
+
#<Magick::Statistics::Channel
|
1724
|
+
max=1.0,
|
1725
|
+
min=0.0,
|
1726
|
+
mean=0.627182352941187,
|
1727
|
+
stddev=0.231399683489667,
|
1728
|
+
var=0.0535458135191179>,
|
1729
|
+
green=
|
1730
|
+
#<Magick::Statistics::Channel
|
1731
|
+
max=1.0,
|
1732
|
+
min=0.0,
|
1733
|
+
mean=0.571999607843132,
|
1734
|
+
stddev=0.22246563644744,
|
1735
|
+
var=0.0494909593999647>,
|
1736
|
+
blue=
|
1737
|
+
#<Magick::Statistics::Channel
|
1738
|
+
max=1.0,
|
1739
|
+
min=0.0,
|
1740
|
+
mean=0.508869725490209,
|
1741
|
+
stddev=0.269422111063184,
|
1742
|
+
var=0.0725882739297426>,
|
1743
|
+
opacity=
|
1744
|
+
#<Magick::Statistics::Channel
|
1745
|
+
max=0.0,
|
1746
|
+
min=0.0,
|
1747
|
+
mean=0.0,
|
1748
|
+
stddev=0.0,
|
1749
|
+
var=0.0>>
|
1750
|
+
|
1751
|
+
p stats.red.stddev » 0.231399683489667
|
1752
|
+
</pre>
|
1753
|
+
|
1754
|
+
<h4>See also</h4>
|
1755
|
+
|
1756
|
+
<p><a href="image1.html#channel_extrema">channel_extrema</a>,
|
1757
|
+
<a href="image1.html#channel_mean">channel_mean</a></p>
|
1758
|
+
|
1759
|
+
<h4>Magick API</h4>GetImageStatistics (available in
|
1760
|
+
GraphicsMagick 1.1)
|
1761
|
+
</div>
|
1762
|
+
|
1763
|
+
<div class="sig">
|
1764
|
+
<h3 id="stegano">stegano</h3>
|
1765
|
+
|
1766
|
+
<p><span class="arg">image</span>.stegano(<span class=
|
1767
|
+
"arg">watermark</span>, <span class="arg">offset</span>) ->
|
1768
|
+
<em>anImage</em></p>
|
1769
|
+
</div>
|
1770
|
+
|
1771
|
+
<div class="desc">
|
1772
|
+
<h4>Description</h4>
|
1773
|
+
|
1774
|
+
<p>Hides a digital watermark in the receiver. You can retrieve
|
1775
|
+
the watermark by reading the file with the
|
1776
|
+
<code>stegano:</code> prefix, thereby proving the authenticity
|
1777
|
+
of the file.</p>
|
1778
|
+
|
1779
|
+
<p>The watermarked image must be saved in a lossless RGB format
|
1780
|
+
such as MIFF, or PNG. You cannot save a watermarked image in a
|
1781
|
+
lossy format such as JPEG or a pseudocolor format such as GIF.
|
1782
|
+
Once written, the file must not be modified or processed in any
|
1783
|
+
way.</p>
|
1784
|
+
|
1785
|
+
<h4>Arguments</h4>
|
1786
|
+
|
1787
|
+
<dl>
|
1788
|
+
<dt>watermark</dt>
|
1789
|
+
|
1790
|
+
<dd>An image or imagelist to be used as the watermark. The
|
1791
|
+
watermark must be grayscale and should be substantially
|
1792
|
+
smaller than the receiver. The recovery time is proportional
|
1793
|
+
to the size of the watermark.</dd>
|
1794
|
+
|
1795
|
+
<dt>offset</dt>
|
1796
|
+
|
1797
|
+
<dd>The starting position within the receiver at which the
|
1798
|
+
watermark will be hidden. When you retrieve the watermark
|
1799
|
+
from the file, you must supply this value, along with the
|
1800
|
+
width and height of the watermark, in the <a href=
|
1801
|
+
"info.html#Info.size_eq">size</a> optional parameter to the
|
1802
|
+
<a href="#Image.read">read</a> method.</dd>
|
1803
|
+
</dl>
|
1804
|
+
|
1805
|
+
<h4>Returns</h4>
|
1806
|
+
|
1807
|
+
<p>A copy of the image containing the embedded watermark.</p>
|
1808
|
+
|
1809
|
+
<h4>Example</h4>
|
1810
|
+
|
1811
|
+
<p><a href="javascript:popup('stegano.rb.html')"><img src=
|
1812
|
+
"ex/stegano.gif" title="Click to see the example script" alt=
|
1813
|
+
"stegano example" /></a></p>
|
1814
|
+
|
1815
|
+
<h4>Magick API</h4>
|
1816
|
+
|
1817
|
+
<p>SteganoImage</p>
|
1818
|
+
</div>
|
1819
|
+
|
1820
|
+
<div class="sig">
|
1821
|
+
<h3 id="stereo">stereo</h3>
|
1822
|
+
|
1823
|
+
<p><span class="arg">image</span>.stereo(<span class=
|
1824
|
+
"arg">offset_image</span>) -> <em>anImage</em></p>
|
1825
|
+
</div>
|
1826
|
+
|
1827
|
+
<div class="desc">
|
1828
|
+
<h4>Description</h4>
|
1829
|
+
|
1830
|
+
<p class="imquote">Combines two images and produces a single
|
1831
|
+
image that is the composite of a left and right image of a
|
1832
|
+
stereo pair. Special red-green stereo glasses are required to
|
1833
|
+
view this effect.</p>
|
1834
|
+
|
1835
|
+
<h4>Arguments</h4>
|
1836
|
+
|
1837
|
+
<p>Another image or imagelist. If the argument is an imagelist,
|
1838
|
+
uses the current image.</p>
|
1839
|
+
|
1840
|
+
<h4>Returns</h4>
|
1841
|
+
|
1842
|
+
<p>A new image</p>
|
1843
|
+
|
1844
|
+
<h4>Magick API</h4>
|
1845
|
+
|
1846
|
+
<p>StereoImage</p>
|
1847
|
+
</div>
|
1848
|
+
|
1849
|
+
<div class="sig">
|
1850
|
+
<h3 id="store_pixels">store_pixels</h3>
|
1851
|
+
|
1852
|
+
<p><span class="arg">image</span>.store_pixels(<span class=
|
1853
|
+
"arg">x</span>, <span class="arg">y</span>, <span class=
|
1854
|
+
"arg">columns</span>, <span class="arg">rows</span>,
|
1855
|
+
<span class="arg">pixels</span>) -> <em>image</em></p>
|
1856
|
+
</div>
|
1857
|
+
|
1858
|
+
<div class="desc">
|
1859
|
+
<h4>Description</h4>
|
1860
|
+
|
1861
|
+
<p>Replace the pixels in the specified rectangle with the
|
1862
|
+
pixels in the <em>pixels</em> array.</p>
|
1863
|
+
|
1864
|
+
<h4>Arguments</h4>
|
1865
|
+
|
1866
|
+
<dl>
|
1867
|
+
<dt>x, y</dt>
|
1868
|
+
|
1869
|
+
<dd>The x- and y-offset of the rectangle to be replaced.</dd>
|
1870
|
+
|
1871
|
+
<dt>columns, rows</dt>
|
1872
|
+
|
1873
|
+
<dd>The number of rows and columns in the rectangle.</dd>
|
1874
|
+
|
1875
|
+
<dt>pixels</dt>
|
1876
|
+
|
1877
|
+
<dd>An array of <a href="struct.html#Pixel">pixels</a>. The
|
1878
|
+
number of pixels in the array must be the same as the number
|
1879
|
+
of pixels in the rectangle, that is,
|
1880
|
+
<code>rows*columns</code>.</dd>
|
1881
|
+
</dl>
|
1882
|
+
|
1883
|
+
<h4>Returns</h4>
|
1884
|
+
|
1885
|
+
<p>The image, with the rectangle suitably altered.</p>
|
1886
|
+
|
1887
|
+
<h4>Example</h4>
|
1888
|
+
|
1889
|
+
<p><a href="javascript:popup('smile.rb.html')"><img src=
|
1890
|
+
"ex/smile.gif" title="Click to see the example script" alt=
|
1891
|
+
"smile example" /></a></p>
|
1892
|
+
|
1893
|
+
<p>Also see the example for <a href=
|
1894
|
+
"image2.html#get_pixels"><code>get_pixels</code></a>.</p>
|
1895
|
+
|
1896
|
+
<h4>See also</h4><p><a href="image2.html#get_pixels">get_pixels</a>,
|
1897
|
+
<a href="#view">view</a></p>
|
1898
|
+
|
1899
|
+
<h4>Magick API</h4>
|
1900
|
+
|
1901
|
+
<p>SetImagePixels, SyncImagePixels</p>
|
1902
|
+
</div>
|
1903
|
+
|
1904
|
+
<div class="sig">
|
1905
|
+
<h3 id="strip_bang">strip!</h3>
|
1906
|
+
|
1907
|
+
<p><span class="arg">image</span>.strip! ->
|
1908
|
+
<em>image</em></p>
|
1909
|
+
</div>
|
1910
|
+
|
1911
|
+
<div class="desc">
|
1912
|
+
<h4>Description</h4>
|
1913
|
+
|
1914
|
+
<p class="imquote">Strips an image of all profiles and
|
1915
|
+
comments.</p>
|
1916
|
+
|
1917
|
+
<h4>Returns</h4>
|
1918
|
+
|
1919
|
+
<p>self</p>
|
1920
|
+
|
1921
|
+
<h4>Magick API</h4>StripImage (available in ImageMagick 6.0.0
|
1922
|
+
and GraphicsMagick 1.1)
|
1923
|
+
</div>
|
1924
|
+
|
1925
|
+
<div class="sig">
|
1926
|
+
<h3 id="swirl">swirl</h3>
|
1927
|
+
|
1928
|
+
<p><span class="arg">image</span>.swirl(<span class=
|
1929
|
+
"arg">degrees</span>) -> <em>anImage</em></p>
|
1930
|
+
</div>
|
1931
|
+
|
1932
|
+
<div class="desc">
|
1933
|
+
<h4>Description</h4>
|
1934
|
+
|
1935
|
+
<p class="imquote">Swirls the pixels about the center of the
|
1936
|
+
image, where degrees indicates the sweep of the arc through
|
1937
|
+
which each pixel is moved. You get a more dramatic effect as
|
1938
|
+
the degrees move from 1 to 360.</p>
|
1939
|
+
|
1940
|
+
<h4>Arguments</h4>
|
1941
|
+
|
1942
|
+
<p>The number of degrees to swirl the image.</p>
|
1943
|
+
|
1944
|
+
<h4>Returns</h4>
|
1945
|
+
|
1946
|
+
<p>A new image</p>
|
1947
|
+
|
1948
|
+
<h4>Example</h4>
|
1949
|
+
|
1950
|
+
<p>This example is an animated image. Mouse over the image to
|
1951
|
+
start the animation.</p>
|
1952
|
+
|
1953
|
+
<p class="rollover"><a href=
|
1954
|
+
"javascript:popup('swirl.rb.html')"><img onmouseover=
|
1955
|
+
"this.src='ex/swirl.gif'" onmouseout=
|
1956
|
+
"this.src='ex/images/Flower_Hat.jpg'" src=
|
1957
|
+
"ex/images/Flower_Hat.jpg" alt="swirl example" title=
|
1958
|
+
"Click the image to see the example script" /></a><img src=
|
1959
|
+
"ex/images/spin.gif" alt="" class="spin" title=
|
1960
|
+
"Mouse over the example to see the animation" /></p>
|
1961
|
+
|
1962
|
+
<h4>Magick API</h4>
|
1963
|
+
|
1964
|
+
<p>SwirlImage</p>
|
1965
|
+
</div>
|
1966
|
+
|
1967
|
+
<div class="sig">
|
1968
|
+
<h3 id="texture_fill_to_border">texture_fill_to_border</h3>
|
1969
|
+
|
1970
|
+
<p><span class=
|
1971
|
+
"arg">image</span>.texture_fill_to_border(<span class=
|
1972
|
+
"arg">x</span>, <span class="arg">y</span>, <span class=
|
1973
|
+
"arg">texture</span>) -> <em>anImage</em></p>
|
1974
|
+
</div>
|
1975
|
+
|
1976
|
+
<div class="desc">
|
1977
|
+
<h4>Description</h4>
|
1978
|
+
|
1979
|
+
<p>Replaces the target pixel at <span class="arg">x</span>,
|
1980
|
+
<span class="arg">y</span> and its neighbors that are not the
|
1981
|
+
border color with copies of the <span class=
|
1982
|
+
"arg">texture</span> image. Use the <a href=
|
1983
|
+
"imageattrs.html#Image.fuzz">fuzz</a> attribute to specify how
|
1984
|
+
closely a pixel must match the border color.</p>
|
1985
|
+
|
1986
|
+
<h4>Arguments</h4>
|
1987
|
+
|
1988
|
+
<dl>
|
1989
|
+
<dt>x, y</dt>
|
1990
|
+
|
1991
|
+
<dd>The x- and y-offset of the target pixel.</dd>
|
1992
|
+
|
1993
|
+
<dt>texture</dt>
|
1994
|
+
|
1995
|
+
<dd>An image or imagelist. If an imagelist, uses the current
|
1996
|
+
image.</dd>
|
1997
|
+
</dl>
|
1998
|
+
|
1999
|
+
<h4>Returns</h4>
|
2000
|
+
|
2001
|
+
<p>A new image</p>
|
2002
|
+
|
2003
|
+
<h4>Example</h4>
|
2004
|
+
|
2005
|
+
<p>In this example the target is the pixel in the center of the
|
2006
|
+
image. The rose texture replaces this pixel and its neighbors
|
2007
|
+
until reaching a black pixel. Mouse over the image to see the
|
2008
|
+
original image. Notice the plum-colored circles are replaced as
|
2009
|
+
well. Compare this result with the result of
|
2010
|
+
<code>texture_floodfill</code>, below.</p>
|
2011
|
+
|
2012
|
+
<p class="rollover"><a href=
|
2013
|
+
"javascript:popup('texture_fill_to_border.rb.html')"><img src=
|
2014
|
+
"ex/texture_fill_to_border_after.gif" alt=
|
2015
|
+
"texture_fill_to_border example" onmouseover=
|
2016
|
+
"this.src='ex/texture_fill_to_border_before.gif'" onmouseout=
|
2017
|
+
"this.src='ex/texture_fill_to_border_after.gif'" title=
|
2018
|
+
"Click to see the example script" /></a> <img src=
|
2019
|
+
"ex/images/spin.gif" alt="" class="spin" style="left:206px;"
|
2020
|
+
title="Mouse over the example to see the original image" /></p>
|
2021
|
+
|
2022
|
+
<h4>See also</h4><p><a href=
|
2023
|
+
"image1.html#color_fill_to_border">color_fill_to_border</a>,
|
2024
|
+
<a href=
|
2025
|
+
"image2.html#matte_fill_to_border">matte_fill_to_border</a></p>
|
2026
|
+
|
2027
|
+
<h4>Magick API</h4>
|
2028
|
+
|
2029
|
+
<p>ColorFloodfillImage</p>
|
2030
|
+
</div>
|
2031
|
+
|
2032
|
+
<div class="sig">
|
2033
|
+
<h3 id="texture_floodfill">texture_floodfill</h3>
|
2034
|
+
|
2035
|
+
<p><span class=
|
2036
|
+
"arg">image</span>.texture_floodfill(<span class="arg">x</span>,
|
2037
|
+
<span class="arg">y</span>, <span class="arg">texture</span>)
|
2038
|
+
-> <em>anImage</em></p>
|
2039
|
+
</div>
|
2040
|
+
|
2041
|
+
<div class="desc">
|
2042
|
+
<h4>Description</h4>
|
2043
|
+
|
2044
|
+
<p>Replaces the target pixel at <span class="arg">x</span>,
|
2045
|
+
<span class="arg">y</span> and its neighbors that are the same
|
2046
|
+
color with the <span class="arg">texture</span> image. By
|
2047
|
+
default, the neighbor pixels must be exactly the same color as
|
2048
|
+
the target pixel. Use the <a href=
|
2049
|
+
"imageattrs.html#Image.fuzz">fuzz</a> attribute to specify how
|
2050
|
+
much difference is acceptable.</p>
|
2051
|
+
|
2052
|
+
<h4>Arguments</h4>
|
2053
|
+
|
2054
|
+
<dl>
|
2055
|
+
<dt>x, y</dt>
|
2056
|
+
|
2057
|
+
<dd>The x- and y-offset of the target pixel.</dd>
|
2058
|
+
|
2059
|
+
<dt>texture</dt>
|
2060
|
+
|
2061
|
+
<dd>An image or imagelist. If an imagelist, uses the current
|
2062
|
+
image.</dd>
|
2063
|
+
</dl>
|
2064
|
+
|
2065
|
+
<h4>Returns</h4>
|
2066
|
+
|
2067
|
+
<p>A new image</p>
|
2068
|
+
|
2069
|
+
<h4>Example</h4>
|
2070
|
+
|
2071
|
+
<p>In this example the target is the pixel in the center of the
|
2072
|
+
image. The rose texture replaces this pixel and its
|
2073
|
+
same-colored neighbors. Mouse over the image to see the
|
2074
|
+
original image. Notice the plum-colored circles are not
|
2075
|
+
replaced. Compare this result with the result of
|
2076
|
+
<code>texture_fill_to_border</code>, above.</p>
|
2077
|
+
|
2078
|
+
<p class="rollover"><a href=
|
2079
|
+
"javascript:popup('texture_floodfill.rb.html')"><img src=
|
2080
|
+
"ex/texture_floodfill_after.gif" alt=
|
2081
|
+
"texture_floodfill example" onmouseover=
|
2082
|
+
"this.src='ex/texture_floodfill_before.gif'" onmouseout=
|
2083
|
+
"this.src='ex/texture_floodfill_after.gif'" title=
|
2084
|
+
"Click to see the example script" /></a><img src=
|
2085
|
+
"ex/images/spin.gif" alt="" class="spin" style="left:206px;"
|
2086
|
+
title="Mouse over the example to see the original image" /></p>
|
2087
|
+
|
2088
|
+
<h4>See also</h4>
|
2089
|
+
|
2090
|
+
<p><a href="image1.html#color_floodfill">color_floodfill</a>,
|
2091
|
+
<a href="image2.html#matte_floodfill">matte_floodfill</a></p>
|
2092
|
+
|
2093
|
+
<h4>Magick API</h4>
|
2094
|
+
|
2095
|
+
<p>ColorFloodfillImage</p>
|
2096
|
+
</div>
|
2097
|
+
|
2098
|
+
<div class="sig">
|
2099
|
+
<h3 id="threshold">threshold</h3>
|
2100
|
+
|
2101
|
+
<p><span class="arg">image</span>.threshold(<span class=
|
2102
|
+
"arg">threshold</span>) -> <em>anImage</em></p>
|
2103
|
+
</div>
|
2104
|
+
|
2105
|
+
<div class="desc">
|
2106
|
+
<h4>Description</h4>
|
2107
|
+
|
2108
|
+
<p class="imquote">Changes the value of individual pixels based
|
2109
|
+
on the intensity of each pixel compared to <span class=
|
2110
|
+
"arg">threshold</span>. The result is a high-contrast, two
|
2111
|
+
color image.</p>
|
2112
|
+
|
2113
|
+
<h4>Arguments</h4>
|
2114
|
+
|
2115
|
+
<p>A value between 0 and MaxRGB.</p>
|
2116
|
+
|
2117
|
+
<h4>Returns</h4>
|
2118
|
+
|
2119
|
+
<p>A new image</p>
|
2120
|
+
|
2121
|
+
<h4>Example</h4>
|
2122
|
+
|
2123
|
+
<p><code>threshold(Magick::MaxRGB*0.55)</code></p>
|
2124
|
+
|
2125
|
+
<p class="rollover"><a href=
|
2126
|
+
"javascript:popup('threshold.rb.html')"><img src=
|
2127
|
+
"ex/threshold.jpg" onmouseover=
|
2128
|
+
"this.src='ex/images/Flower_Hat.jpg'" onmouseout=
|
2129
|
+
"this.src='ex/threshold.jpg'" title=
|
2130
|
+
"Click to see the example script" alt=
|
2131
|
+
"threshold example" /></a><img src="ex/images/spin.gif" alt=""
|
2132
|
+
class="spin" title=
|
2133
|
+
"Mouse over the example to see the original image" /></p>
|
2134
|
+
|
2135
|
+
<h4>See also</h4>
|
2136
|
+
|
2137
|
+
<p><a href=
|
2138
|
+
"image1.html#adaptive_threshold">adaptive_threshold</a>,
|
2139
|
+
<a href="image1.html#channel_threshold">channel_threshold</a>,
|
2140
|
+
<a href=
|
2141
|
+
"#random_channel_threshold">random_channel_threshold</a></p>
|
2142
|
+
|
2143
|
+
<h4>Magick API</h4>
|
2144
|
+
|
2145
|
+
<p>ThresholdImage</p>
|
2146
|
+
</div>
|
2147
|
+
|
2148
|
+
<div class="sig">
|
2149
|
+
<h3 id="thumbnail">thumbnail</h3>
|
2150
|
+
|
2151
|
+
<p><span class="arg">image</span>.thumbnail(<span class=
|
2152
|
+
"arg">new_width</span>, <span class="arg">new_height</span>)
|
2153
|
+
-> <em>anImage</em><br />
|
2154
|
+
<span class="arg">image</span>.thumbnail(<span class=
|
2155
|
+
"arg">scale_factor</span>) -> <em>anImage</em></p>
|
2156
|
+
</div>
|
2157
|
+
|
2158
|
+
<div class="desc">
|
2159
|
+
<h4>Description</h4>
|
2160
|
+
|
2161
|
+
<p>The <code>thumbnail</code> method is a fast resizing method
|
2162
|
+
suitable for use when the size of the resulting image is <
|
2163
|
+
10% of the original.</p>
|
2164
|
+
|
2165
|
+
<h4>Arguments</h4>
|
2166
|
+
|
2167
|
+
<p>You can call <code>thumbnail</code> with either the new
|
2168
|
+
width and height or the scale factor.</p>
|
2169
|
+
|
2170
|
+
<dl>
|
2171
|
+
<dt>new_width, new_height</dt>
|
2172
|
+
|
2173
|
+
<dd>The desired width and height in pixels.</dd>
|
2174
|
+
|
2175
|
+
<dt>scale_factor</dt>
|
2176
|
+
|
2177
|
+
<dd>The desired size represented as a floating-point number.
|
2178
|
+
For example, to make a thumbnail that is 9.5% of the size of
|
2179
|
+
the original image, use <code>0.095</code>.</dd>
|
2180
|
+
</dl>
|
2181
|
+
|
2182
|
+
<h4>Returns</h4>
|
2183
|
+
|
2184
|
+
<p>A new image</p>
|
2185
|
+
|
2186
|
+
<h4>Example</h4>
|
2187
|
+
<pre>
|
2188
|
+
img = Magick::Image.read("images/Cheetah.jpg").first
|
2189
|
+
thumbnail = img.thumbnail(img.columns*0.09, img.rows*0.09)
|
2190
|
+
</pre>
|
2191
|
+
|
2192
|
+
<h4>See also</h4><p><a href="image2.html#minify">minify</a>,
|
2193
|
+
<a href="#resize">resize</a>, <a href="#sample">sample</a>,
|
2194
|
+
<a href="#scale">scale</a></p>
|
2195
|
+
|
2196
|
+
<h4>Magick API</h4>ThumbnailImage (available in ImageMagick
|
2197
|
+
5.5.2)
|
2198
|
+
</div>
|
2199
|
+
|
2200
|
+
<div class="sig">
|
2201
|
+
<h3 id="thumbnail_bang">thumbnail!</h3>
|
2202
|
+
|
2203
|
+
<p><span class="arg">image</span>.thumbnail!(<span class=
|
2204
|
+
"arg">new_width</span>, <span class="arg">new_height</span>)
|
2205
|
+
-> <em>image</em><br />
|
2206
|
+
<span class="arg">image</span>.thumbnail!(<span class=
|
2207
|
+
"arg">scale_factor</span>) -> <em>image</em></p>
|
2208
|
+
</div>
|
2209
|
+
|
2210
|
+
<div class="desc">
|
2211
|
+
<h4>Description</h4>
|
2212
|
+
|
2213
|
+
<p>In-place form of <a href="#thumbnail">thumbnail</a>.</p>
|
2214
|
+
|
2215
|
+
<h4>Returns</h4>
|
2216
|
+
|
2217
|
+
<p>self</p>
|
2218
|
+
</div>
|
2219
|
+
|
2220
|
+
<div class="sig">
|
2221
|
+
<h3 id="to_blob">to_blob</h3>
|
2222
|
+
|
2223
|
+
<p><span class="arg">image</span>.to_blob <span class="arg">[ {
|
2224
|
+
optional arguments } ]</span>-> <em>aString</em></p>
|
2225
|
+
</div>
|
2226
|
+
|
2227
|
+
<div class="desc">
|
2228
|
+
<h4>Description</h4>
|
2229
|
+
|
2230
|
+
<p>Creates a <em>B</em>inary <em>L</em>arge <em>OB</em>ject, a
|
2231
|
+
direct-to-memory version of the image. The <a href=
|
2232
|
+
"image1.html#from_blob">from_blob</a> method constructs an
|
2233
|
+
image from a BLOB created by this method.</p>
|
2234
|
+
|
2235
|
+
<h4>Arguments</h4>
|
2236
|
+
|
2237
|
+
<p>No required arguments, however you can specify the image
|
2238
|
+
format (such as JPEG, PNG, etc.) and depth by calling the
|
2239
|
+
<a href="imageattrs.html#Image.format">format</a> and <a href=
|
2240
|
+
"imageattrs.html#Image.depth">depth</a> attributes, as well as
|
2241
|
+
other <a href="info.html">Image::Info</a> attributes as
|
2242
|
+
appropriate, in a block associated with the method.</p>
|
2243
|
+
|
2244
|
+
<h4>Returns</h4>
|
2245
|
+
|
2246
|
+
<p>A string containing the image data represented as a
|
2247
|
+
BLOB.</p>
|
2248
|
+
|
2249
|
+
<h4>Example</h4>
|
2250
|
+
|
2251
|
+
<p><a href="javascript:popup('to_blob.rb.html')"><img src=
|
2252
|
+
"ex/to_blob.gif" alt="to_blob example" title=
|
2253
|
+
"Click to see the example script" /></a></p>
|
2254
|
+
|
2255
|
+
<h4>See also</h4><p><a href="image1.html#Ifrom_blob">from_blob</a></p>
|
2256
|
+
|
2257
|
+
<h4>Magick API</h4>
|
2258
|
+
|
2259
|
+
<p>ImageToBlob</p>
|
2260
|
+
</div>
|
2261
|
+
|
2262
|
+
<div class="sig">
|
2263
|
+
<h3 id="to_color">to_color</h3>
|
2264
|
+
|
2265
|
+
<p><span class="arg">image</span>.to_color(<span class=
|
2266
|
+
"arg">aPixel</span>) -> <em>aString</em></p>
|
2267
|
+
</div>
|
2268
|
+
|
2269
|
+
<div class="desc">
|
2270
|
+
<h4>Description</h4>
|
2271
|
+
|
2272
|
+
<p>Returns the color name for a pixel. Unlike the
|
2273
|
+
<code>Pixel#to_color</code> method, to_color uses the <a href=
|
2274
|
+
"imageattrs.html#Image.depth">depth</a> and <a href=
|
2275
|
+
"imageattrs.html#Image.matte">matte</a> attributes of the image
|
2276
|
+
to determine the color name.</p>
|
2277
|
+
|
2278
|
+
<h4>Arguments</h4>
|
2279
|
+
|
2280
|
+
<p>A <a href="struct.html#Pixel">Pixel</a> object.</p>
|
2281
|
+
|
2282
|
+
<h4>Returns</h4>
|
2283
|
+
|
2284
|
+
<p>A <a href="imusage.html#color_names">color name</a>.</p>
|
2285
|
+
|
2286
|
+
<h4>Example</h4>
|
2287
|
+
<pre>
|
2288
|
+
img = Image.read('ex/images/Flower_Hat.jpg').first
|
2289
|
+
» ex/images/Flower_Hat.jpg JPEG 200x250 DirectClass 8-bit 9761b
|
2290
|
+
pixel = img.pixel_color(img.columns/2, img.rows/2)
|
2291
|
+
» #<struct Magick::Pixel red=216, green=147, blue=106, opacity=0>
|
2292
|
+
img.to_color(pixel)
|
2293
|
+
» "#D8936A"
|
2294
|
+
</pre>
|
2295
|
+
|
2296
|
+
<h4>See also</h4>
|
2297
|
+
|
2298
|
+
<p><a href="struct.html#Pixel.to_color">Pixel#to_color</a></p>
|
2299
|
+
|
2300
|
+
<h4>Magick API</h4>
|
2301
|
+
|
2302
|
+
<p>QueryColorname</p>
|
2303
|
+
</div>
|
2304
|
+
|
2305
|
+
<div class="sig">
|
2306
|
+
<h3 id="transparent">transparent</h3>
|
2307
|
+
|
2308
|
+
<p><span class="arg">image</span>.transparent(<span class=
|
2309
|
+
"arg">color</span>, <span class=
|
2310
|
+
"arg">opacity</span>=Magick::TransparentOpacity) ->
|
2311
|
+
<em>anImage</em></p>
|
2312
|
+
</div>
|
2313
|
+
|
2314
|
+
<div class="desc">
|
2315
|
+
<h4>Description</h4>
|
2316
|
+
|
2317
|
+
<p>Changes the opacity value of all the pixels that match
|
2318
|
+
<span class="arg">color</span> to the value specified by
|
2319
|
+
<span class="arg">opacity</span>. By default the pixel must
|
2320
|
+
match exactly, but you can specify a tolerence level by setting
|
2321
|
+
the <a href="imageattrs.html#Image.fuzz">fuzz</a> attribute on
|
2322
|
+
the image.</p>
|
2323
|
+
|
2324
|
+
<h4>Arguments</h4>
|
2325
|
+
|
2326
|
+
<dl>
|
2327
|
+
<dt>color</dt>
|
2328
|
+
|
2329
|
+
<dd>Either a <a href="imusage.html#color_names">color
|
2330
|
+
name</a> or a <a href="struct.html#Pixel">pixel</a>.</dd>
|
2331
|
+
|
2332
|
+
<dt>opacity</dt>
|
2333
|
+
|
2334
|
+
<dd>The new opacity value, either an <a href=
|
2335
|
+
"constants.html#Opacity">opacity</a> constant or a number
|
2336
|
+
between 0 and MaxRGB. The default is TransparentOpacity.</dd>
|
2337
|
+
</dl>
|
2338
|
+
|
2339
|
+
<h4>Returns</h4>
|
2340
|
+
|
2341
|
+
<p>A new image</p>
|
2342
|
+
|
2343
|
+
<h4>Example</h4>
|
2344
|
+
|
2345
|
+
<p>Mouse over the image to see the original. In this example,
|
2346
|
+
all the black pixels are made transparent. The resulting image
|
2347
|
+
has been composited over a plasma background, which shows
|
2348
|
+
through the transparent pixels.</p>
|
2349
|
+
|
2350
|
+
<p class="rollover"><a href=
|
2351
|
+
"javascript:popup('transparent.rb.html')"><img src=
|
2352
|
+
"ex/transparent_after.gif" title=
|
2353
|
+
"Click to see the example script" onmouseover=
|
2354
|
+
"this.src='ex/transparent_before.gif'" onmouseout=
|
2355
|
+
"this.src='ex/transparent_after.gif'" alt=
|
2356
|
+
"transparent example" /></a><img src="ex/images/spin.gif" alt=
|
2357
|
+
"" class="spin" title=
|
2358
|
+
"Mouse over the example to see the original image" /></p>
|
2359
|
+
|
2360
|
+
<h4>See also</h4>
|
2361
|
+
|
2362
|
+
<p><a href="image2.html#matte_replace">matte_replace</a>,
|
2363
|
+
<a href="draw.html#Draw.matte">Draw#matte</a></p>
|
2364
|
+
|
2365
|
+
<h4>Magick API</h4>
|
2366
|
+
|
2367
|
+
<p>TransparentImage</p>
|
2368
|
+
</div>
|
2369
|
+
|
2370
|
+
<div class="sig">
|
2371
|
+
<h3 id="trim">trim</h3>
|
2372
|
+
|
2373
|
+
<p><span class="arg">image</span>.trim ->
|
2374
|
+
<em>anImage</em></p>
|
2375
|
+
</div>
|
2376
|
+
|
2377
|
+
<div class="desc">
|
2378
|
+
<h4>Description</h4>
|
2379
|
+
|
2380
|
+
<p class="imquote">Removes the edges that are exactly the same
|
2381
|
+
color as the corner pixels. Use the <a href=
|
2382
|
+
"imageattrs.html#fuzz">fuzz</a> attribute to make
|
2383
|
+
<code>trim</code> remove edges that are nearly the same color
|
2384
|
+
as the corner pixels.</p>
|
2385
|
+
|
2386
|
+
<h4>Returns</h4>
|
2387
|
+
|
2388
|
+
<p>A new image</p>
|
2389
|
+
|
2390
|
+
<h4>Example</h4>
|
2391
|
+
|
2392
|
+
<p class="rollover"><a href=
|
2393
|
+
"javascript:popup('trim.rb.html')"><img src="ex/trim_after.jpg"
|
2394
|
+
onmouseover="this.src='ex/trim_before.jpg'" onmouseout=
|
2395
|
+
"this.src='ex/trim_after.jpg'" alt="trim example" title=
|
2396
|
+
"Click to see the example script" /></a> <img src=
|
2397
|
+
"ex/images/spin.gif" alt="" class="spin" title=
|
2398
|
+
"Mouse over the image to see the original image" /></p>
|
2399
|
+
|
2400
|
+
<h4>Magick API</h4>
|
2401
|
+
|
2402
|
+
<p>CropImage</p>
|
2403
|
+
</div>
|
2404
|
+
|
2405
|
+
<div class="sig">
|
2406
|
+
<h3 id="trim_bang">trim!</h3>
|
2407
|
+
|
2408
|
+
<p><span class="arg">image</span>.trim! -> <em>self</em></p>
|
2409
|
+
</div>
|
2410
|
+
|
2411
|
+
<div class="desc">
|
2412
|
+
<p>In-place form of <a href="#trim">trim</a>.</p>
|
2413
|
+
|
2414
|
+
<h4>Returns</h4>
|
2415
|
+
|
2416
|
+
<p>self</p>
|
2417
|
+
</div>
|
2418
|
+
|
2419
|
+
<div class="sig">
|
2420
|
+
<h3 id="unsharp_mask">unsharp_mask</h3>
|
2421
|
+
|
2422
|
+
<p><span class="arg">image</span>.unsharp_mask(<span class=
|
2423
|
+
"arg">radius=0.0</span>, <span class="arg">sigma=1.0</span>,
|
2424
|
+
<span class="arg">amount=1.0</span>, <span class=
|
2425
|
+
"arg">threshold=0.05</span>) -> <em>anImage</em></p>
|
2426
|
+
</div>
|
2427
|
+
|
2428
|
+
<div class="desc">
|
2429
|
+
<h4>Description</h4>
|
2430
|
+
|
2431
|
+
<p class="imquote">Sharpens an image. We convolve the image
|
2432
|
+
with a Gaussian operator of the given <span class=
|
2433
|
+
"arg">radius</span> and standard deviation (<span class=
|
2434
|
+
"arg">sigma</span>). For reasonable results, <span class=
|
2435
|
+
"arg">radius</span> should be larger than <span class=
|
2436
|
+
"arg">sigma</span>. Use a radius of 0 and
|
2437
|
+
<code>unsharp_mask</code> selects a suitable radius for
|
2438
|
+
you.</p>
|
2439
|
+
|
2440
|
+
<h4>Arguments</h4>
|
2441
|
+
|
2442
|
+
<p>All arguments are optional.</p>
|
2443
|
+
|
2444
|
+
<dl>
|
2445
|
+
<dt>radius</dt>
|
2446
|
+
|
2447
|
+
<dd>The radius of the Gaussian operator. The default is
|
2448
|
+
0.0.</dd>
|
2449
|
+
|
2450
|
+
<dt>sigma</dt>
|
2451
|
+
|
2452
|
+
<dd>The standard deviation of the Gaussian operator. A good
|
2453
|
+
starting value is 1.0, which is the default.</dd>
|
2454
|
+
|
2455
|
+
<dt>amount</dt>
|
2456
|
+
|
2457
|
+
<dd>The percentage of the blurred image to be added to the
|
2458
|
+
receiver, specified as a fraction between 0 and 1.0. A good
|
2459
|
+
starting value is 1.0, which is the default.</dd>
|
2460
|
+
|
2461
|
+
<dt>threshold</dt>
|
2462
|
+
|
2463
|
+
<dd>The threshold needed to apply the amount, specified as a
|
2464
|
+
fraction between 0 and 1.0. A good starting value is 0.05,
|
2465
|
+
which is the default.</dd>
|
2466
|
+
</dl>
|
2467
|
+
|
2468
|
+
<h4>Returns</h4>
|
2469
|
+
|
2470
|
+
<p>A new image</p>
|
2471
|
+
|
2472
|
+
<h4>Example</h4>
|
2473
|
+
|
2474
|
+
<p><a href=
|
2475
|
+
"javascript:popup:('unsharp_mask.rb.html')"><img src="ex/unsharp_mask.jpg"
|
2476
|
+
alt="unsharp_mask example" title=
|
2477
|
+
"Click to see the example script" /></a></p>
|
2478
|
+
|
2479
|
+
<h4>See also</h4><p><a href="image1.html#enhance">enhance</a>,
|
2480
|
+
<a href="image2.html#median_filter">median_filter</a>, <a href=
|
2481
|
+
"image3.html#reduce_noise">reduce_noise</a>, <a href=
|
2482
|
+
"#unsharp_mask_channel">unsharp_mask_channel</a></p>
|
2483
|
+
|
2484
|
+
<h4>Magick API</h4>
|
2485
|
+
|
2486
|
+
<p>UnsharpMaskImage</p>
|
2487
|
+
</div>
|
2488
|
+
|
2489
|
+
<div class="sig">
|
2490
|
+
<h3 id="unsharp_mask_channel">unsharp_mask_channel</h3>
|
2491
|
+
|
2492
|
+
<p><span class=
|
2493
|
+
"arg">image</span>.unsharp_mask_channel(<span class=
|
2494
|
+
"arg">radius=0.0</span>, <span class="arg">sigma=1.0</span>,
|
2495
|
+
<span class="arg">amount=1.0</span>, <span class=
|
2496
|
+
"arg">threshold=0.05</span> [,<span class="arg">channel</span>,
|
2497
|
+
<span class="arg">channel</span>...]) ->
|
2498
|
+
<em>anImage</em></p>
|
2499
|
+
</div>
|
2500
|
+
|
2501
|
+
<div class="desc">
|
2502
|
+
<h4>Description</h4>
|
2503
|
+
|
2504
|
+
<p class="imquote">Sharpens an image. We convolve the image
|
2505
|
+
with a Gaussian operator of the given <span class=
|
2506
|
+
"arg">radius</span> and standard deviation (<span class=
|
2507
|
+
"arg">sigma</span>). For reasonable results, <span class=
|
2508
|
+
"arg">radius</span> should be larger than <span class=
|
2509
|
+
"arg">sigma</span>. Use a radius of 0 and
|
2510
|
+
<code>unsharp_mask_channel</code> selects a suitable radius for
|
2511
|
+
you.</p>
|
2512
|
+
|
2513
|
+
<p>Only the specified channels are sharpened.</p>
|
2514
|
+
|
2515
|
+
<h4>Arguments</h4>
|
2516
|
+
|
2517
|
+
<p>All arguments are optional.</p>
|
2518
|
+
|
2519
|
+
<dl>
|
2520
|
+
<dt>radius</dt>
|
2521
|
+
|
2522
|
+
<dd>The radius of the Gaussian operator. The default is
|
2523
|
+
0.0.</dd>
|
2524
|
+
|
2525
|
+
<dt>sigma</dt>
|
2526
|
+
|
2527
|
+
<dd>The standard deviation of the Gaussian operator. A good
|
2528
|
+
starting value is 1.0, which is the default.</dd>
|
2529
|
+
|
2530
|
+
<dt>amount</dt>
|
2531
|
+
|
2532
|
+
<dd>The percentage of the blurred image to be added to the
|
2533
|
+
receiver, specified as a fraction between 0 and 1.0. A good
|
2534
|
+
starting value is 1.0, which is the default.</dd>
|
2535
|
+
|
2536
|
+
<dt>threshold</dt>
|
2537
|
+
|
2538
|
+
<dd>The threshold needed to apply the amount, specified as a
|
2539
|
+
fraction between 0 and 1.0. A good starting value is 0.05,
|
2540
|
+
which is the default.</dd>
|
2541
|
+
|
2542
|
+
<dt>channel...</dt>
|
2543
|
+
|
2544
|
+
<dd>0 or more <a href=
|
2545
|
+
"constants.html#ChannelType">ChannelType</a> arguments. If no
|
2546
|
+
channels are specified, all the channels are sharpened. This
|
2547
|
+
is the equivalent of <a href=
|
2548
|
+
"#unsharp_mask">unsharp_mask</a>.</dd>
|
2549
|
+
</dl>
|
2550
|
+
|
2551
|
+
<h4>Returns</h4>
|
2552
|
+
|
2553
|
+
<p>A new image</p>
|
2554
|
+
|
2555
|
+
<h4>See also</h4><p><a href="image1.html#enhance">enhance</a>,
|
2556
|
+
<a href="image2.html#median_filter">median_filter</a>, <a href=
|
2557
|
+
"image3.html#reduce_noise">reduce_noise</a>, <a href=
|
2558
|
+
"#unsharp_mask">unsharp_mask</a></p>
|
2559
|
+
|
2560
|
+
<h4>Magick API</h4>
|
2561
|
+
|
2562
|
+
<p>UnsharpMaskImageChannel (available in ImageMagick 6.1.0)</p>
|
2563
|
+
</div>
|
2564
|
+
|
2565
|
+
<div class="sig">
|
2566
|
+
<h3 id="view">view</h3>
|
2567
|
+
|
2568
|
+
<p><span class="arg">image</span>.view(<span class=
|
2569
|
+
"arg">x</span>, <span class="arg">y</span>, <span class=
|
2570
|
+
"arg">width</span>, <span class="arg">height</span>) ->
|
2571
|
+
<em>aView</em><br />
|
2572
|
+
<span class="arg">image</span>.view(<span class="arg">x</span>,
|
2573
|
+
<span class="arg">y</span>, <span class="arg">width</span>,
|
2574
|
+
<span class="arg">height</span>) { |view|
|
2575
|
+
<em>block</em> } -> <em>nil</em></p>
|
2576
|
+
</div>
|
2577
|
+
|
2578
|
+
<div class="desc">
|
2579
|
+
<h4>Description</h4><code>View</code> is a convenience method
|
2580
|
+
that supports getting and setting individual image pixels by
|
2581
|
+
<code>[i][j]</code> coordinates. With no associated block,
|
2582
|
+
<code>view</code> returns an <a href=
|
2583
|
+
"struct.html#view">Image::View</a> object. If the optional code
|
2584
|
+
block is given, it will be passed the <code>Image::View</code>
|
2585
|
+
object as an argument. The <a href=
|
2586
|
+
"struct.html#view_sync">sync</a> method will be called
|
2587
|
+
automatically when the block terminates. In this case,
|
2588
|
+
<code>view</code> returns <code>nil</code>.
|
2589
|
+
|
2590
|
+
<h4>Arguments</h4>
|
2591
|
+
|
2592
|
+
<dl>
|
2593
|
+
<dt>x, y</dt>
|
2594
|
+
|
2595
|
+
<dd>The offset of the view from the top-left corner of the
|
2596
|
+
image. Within the view, pixels are relative to the top-left
|
2597
|
+
corner of the view, <em>not</em> the image.</dd>
|
2598
|
+
|
2599
|
+
<dt>width, height</dt>
|
2600
|
+
|
2601
|
+
<dd>The width and height of the view. The view may not extend
|
2602
|
+
past the boundaries of <span class="arg">image</span>.</dd>
|
2603
|
+
</dl>
|
2604
|
+
|
2605
|
+
<h4>Returns</h4>
|
2606
|
+
|
2607
|
+
<p>If the optional code block is present, <code>view</code>
|
2608
|
+
returns <code>nil</code>. If it is not present,
|
2609
|
+
<code>view</code> returns an <code>Image::View</code>
|
2610
|
+
object.</p>
|
2611
|
+
|
2612
|
+
<h4>See</h4>
|
2613
|
+
|
2614
|
+
<p><a href="struct.html#view">Image::View</a></p>
|
2615
|
+
|
2616
|
+
<h4>Examples</h4>
|
2617
|
+
|
2618
|
+
<p>The example image below has been scaled 500% for
|
2619
|
+
clarity.</p>
|
2620
|
+
|
2621
|
+
<p><a href="javascript:popup('viewex.rb.html')"><img src=
|
2622
|
+
"ex/viewex.gif" title="Click to see the example script" alt=
|
2623
|
+
"view example" /></a></p>
|
2624
|
+
<pre>
|
2625
|
+
img = Image.new(40, 40) {self.background_color = 'lightcyan2'}
|
2626
|
+
|
2627
|
+
# The view is 400 pixels square, starting at
|
2628
|
+
# column 10, row 5 from the top of the image.
|
2629
|
+
img.view( 10, 5, 20, 20) do |view|
|
2630
|
+
|
2631
|
+
# Set all the pixels in the view to green.
|
2632
|
+
view[][] = Pixel.new(0, MaxRGB)
|
2633
|
+
|
2634
|
+
# Change the top and bottom rows to red.
|
2635
|
+
view[0][] = 'red'
|
2636
|
+
view[-1,1][] = 'red'
|
2637
|
+
|
2638
|
+
# Set 6 pixels to black.
|
2639
|
+
view[[13,15]][[12,14,16]] = 'black'
|
2640
|
+
|
2641
|
+
# Set 1 pixel to yellow.
|
2642
|
+
view[5][7] = 'yellow'
|
2643
|
+
|
2644
|
+
# Change the green channel of all the
|
2645
|
+
# pixels on row 8.
|
2646
|
+
view[8][].green = MaxRGB/2
|
2647
|
+
|
2648
|
+
# Change the blue channel of 8 pixels
|
2649
|
+
# on column 10.
|
2650
|
+
view[4,8][10].blue = MaxRGB
|
2651
|
+
end
|
2652
|
+
</pre>
|
2653
|
+
|
2654
|
+
<h4>See also</h4>
|
2655
|
+
|
2656
|
+
<p><a href="image2.html#pixel_color">pixel_color</a>, <a href=
|
2657
|
+
"image2.html#get_pixels">get_pixels</a>, <a href=
|
2658
|
+
"#store_pixels">store_pixels</a></p>
|
2659
|
+
|
2660
|
+
<h4>Notes</h4>
|
2661
|
+
|
2662
|
+
<p>The <code>view</code> method introduces a relatively high
|
2663
|
+
level of overhead to pixel manipulation compared to methods
|
2664
|
+
that use the ×Magick API to identify and change pixels. I
|
2665
|
+
recommend that you use <code>view</code> only when the number
|
2666
|
+
of pixels identified in the view is fairly small (a few
|
2667
|
+
thousand to a few hundred thousand, depending on your patience
|
2668
|
+
and the speed of your computer) and you need this degree of
|
2669
|
+
control.</p>
|
2670
|
+
</div>
|
2671
|
+
|
2672
|
+
<div class="sig">
|
2673
|
+
<h3 id="wave">wave</h3>
|
2674
|
+
|
2675
|
+
<p><span class="arg">image</span>.wave(<span class=
|
2676
|
+
"arg">amplitude</span>=25.0, <span class=
|
2677
|
+
"arg">wavelength</span>=150.0) -> <em>anImage</em></p>
|
2678
|
+
</div>
|
2679
|
+
|
2680
|
+
<div class="desc">
|
2681
|
+
<h4>Description</h4>
|
2682
|
+
|
2683
|
+
<p class="imquote">Creates a "ripple" effect in the image by
|
2684
|
+
shifting the pixels vertically along a sine wave whose
|
2685
|
+
<span class="arg">amplitude</span> and <span class=
|
2686
|
+
"arg">wavelength</span> is specified by the given
|
2687
|
+
parameters.</p>
|
2688
|
+
|
2689
|
+
<h4>Returns</h4>
|
2690
|
+
|
2691
|
+
<p>A new image</p>
|
2692
|
+
|
2693
|
+
<h4>Example</h4>
|
2694
|
+
|
2695
|
+
<p class="rollover"><a href="javascript:popup('wave.rb.html')">
|
2696
|
+
<!-- This img tag displays the original image when the mouse is over -->
|
2697
|
+
<img style=
|
2698
|
+
"padding-top:25px; padding-bottom:25px; display:none" id=
|
2699
|
+
"nowave" title="Click to see the example script" onmouseout=
|
2700
|
+
"this.style.display='none'; waved.style.display='';" src=
|
2701
|
+
"ex/images/Flower_Hat.jpg" alt="wave example" />
|
2702
|
+
<!--
|
2703
|
+
This img tag displays the framed image when the mouse is not over
|
2704
|
+
--><img class="hide"
|
2705
|
+
id="waved" onmouseover=
|
2706
|
+
"this.style.display='none'; nowave.style.display='';" src=
|
2707
|
+
"ex/wave.jpg" alt="wave example" /></a> <img src=
|
2708
|
+
"ex/images/spin.gif" alt="" class="spin" title=
|
2709
|
+
"Mouse over the example to see the original image" /></p>
|
2710
|
+
|
2711
|
+
<h4>Magick API</h4>
|
2712
|
+
|
2713
|
+
<p>WaveImage</p>
|
2714
|
+
</div>
|
2715
|
+
|
2716
|
+
<div class="sig">
|
2717
|
+
<h3 id="white_threshold">white_threshold</h3>
|
2718
|
+
|
2719
|
+
<p><span class="arg">image</span>.white_threshold(<span class=
|
2720
|
+
"arg">red_channel</span> [, <span class=
|
2721
|
+
"arg">green_channel</span>[, <span class=
|
2722
|
+
"arg">blue_channel</span>[, <span class=
|
2723
|
+
"arg">opacity_channel</span>]]]) -> <em>anImage</em></p>
|
2724
|
+
</div>
|
2725
|
+
|
2726
|
+
<div class="desc">
|
2727
|
+
<h4>Description</h4>
|
2728
|
+
|
2729
|
+
<p class="imquote">Forces all pixels above the threshold into
|
2730
|
+
white while leaving all pixels below the threshold
|
2731
|
+
unchanged.</p>
|
2732
|
+
|
2733
|
+
<h4>Arguments</h4>
|
2734
|
+
|
2735
|
+
<p>Each channel argument is a number between 0 and MaxRGB. All
|
2736
|
+
arguments except the first may be omitted. If the <span class=
|
2737
|
+
"arg">green_channel</span> or <span class=
|
2738
|
+
"arg">blue_channel</span> argument is omitted, the default
|
2739
|
+
value is the <span class="arg">red_channel</span> value. If the
|
2740
|
+
<span class="arg">opacity_channel</span> argument is omitted,
|
2741
|
+
the default value is <a href=
|
2742
|
+
"constants.html#Opacity">OpaqueOpacity</a>.</p>
|
2743
|
+
|
2744
|
+
<h4>Returns</h4>
|
2745
|
+
|
2746
|
+
<p>A new image</p>
|
2747
|
+
|
2748
|
+
<h4>See also</h4>
|
2749
|
+
|
2750
|
+
<p><a href="image1.html#black_threshold">black_threshold</a>,
|
2751
|
+
<a href=
|
2752
|
+
"image1.html#channel_threshold">channel_threshold</a></p>
|
2753
|
+
|
2754
|
+
<h4>Magick API</h4>
|
2755
|
+
|
2756
|
+
<p>WhiteThresholdImage</p>
|
2757
|
+
</div>
|
2758
|
+
|
2759
|
+
<div class="sig">
|
2760
|
+
<h3 id="write">write</h3>
|
2761
|
+
|
2762
|
+
<p><span class="arg">image</span>.write(<span class=
|
2763
|
+
"arg">filename</span>) <span class="arg">[ { optional arguments
|
2764
|
+
} ]</span> -> <span class="arg">image</span><br />
|
2765
|
+
<span class="arg">image</span>.write(<span class=
|
2766
|
+
"arg">file</span>) <span class="arg">[ { optional arguments }
|
2767
|
+
]</span> -> <em>image</em></p>
|
2768
|
+
</div>
|
2769
|
+
|
2770
|
+
<div class="desc">
|
2771
|
+
<h4>Description</h4>
|
2772
|
+
|
2773
|
+
<p>Writes the image to the specified file. ×Magick
|
2774
|
+
determines image format from the <a href=
|
2775
|
+
"imusage.html#formats">prefix or extension</a>.</p>
|
2776
|
+
|
2777
|
+
<p>If the argument is an open file, ×Magick will write
|
2778
|
+
the image in its current format. You can force a different
|
2779
|
+
format by setting the image's <a href=
|
2780
|
+
"imageattrs.html#Image.format">format</a> attribute.</p>
|
2781
|
+
|
2782
|
+
<h4>Arguments</h4>
|
2783
|
+
|
2784
|
+
<p>A file name or open file object. You may also specify
|
2785
|
+
optional arguments by setting <a href=
|
2786
|
+
"info.html">Image::Info</a> attributes in an associated
|
2787
|
+
block.</p>
|
2788
|
+
|
2789
|
+
<h4>Returns</h4>
|
2790
|
+
|
2791
|
+
<p><code>self</code>, or <code>nil</code> if the image format
|
2792
|
+
cannot be determined.</p>
|
2793
|
+
|
2794
|
+
<h4>Example</h4>
|
2795
|
+
|
2796
|
+
<p>Almost all of the examples call <code>write</code>.</p>
|
2797
|
+
|
2798
|
+
<h4>See also</h4>
|
2799
|
+
|
2800
|
+
<p><a href="ilist.html#ImageList.write">ImageList#write</a></p>
|
2801
|
+
|
2802
|
+
<h4>Magick API</h4>
|
2803
|
+
|
2804
|
+
<p>WriteImage</p>
|
2805
|
+
</div>
|
2806
|
+
|
2807
|
+
<p class="spacer"> </p>
|
2808
|
+
|
2809
|
+
<div class="nav">
|
2810
|
+
« <a href="image2.html">Prev</a> | <a href=
|
2811
|
+
"index.html">Contents</a> | <a href=
|
2812
|
+
"draw.html">Next</a> »
|
2813
|
+
</div>
|
2814
|
+
</body>
|
2815
|
+
</html>
|