rmagick 1.7.1

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

Potentially problematic release.


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

Files changed (239) hide show
  1. data/ChangeLog +232 -0
  2. data/Makefile.in +28 -0
  3. data/README.html +404 -0
  4. data/README.txt +397 -0
  5. data/configure +8554 -0
  6. data/configure.ac +497 -0
  7. data/doc/comtasks.html +241 -0
  8. data/doc/constants.html +1195 -0
  9. data/doc/css/doc.css +299 -0
  10. data/doc/css/popup.css +34 -0
  11. data/doc/draw.html +3108 -0
  12. data/doc/ex/Adispatch.rb +43 -0
  13. data/doc/ex/Zconstitute.rb +9 -0
  14. data/doc/ex/adaptive_threshold.rb +19 -0
  15. data/doc/ex/add_noise.rb +18 -0
  16. data/doc/ex/affine.rb +48 -0
  17. data/doc/ex/affine_transform.rb +20 -0
  18. data/doc/ex/arc.rb +47 -0
  19. data/doc/ex/arcpath.rb +33 -0
  20. data/doc/ex/average.rb +15 -0
  21. data/doc/ex/axes.rb +64 -0
  22. data/doc/ex/bilevel_channel.rb +20 -0
  23. data/doc/ex/blur_image.rb +12 -0
  24. data/doc/ex/border.rb +10 -0
  25. data/doc/ex/bounding_box.rb +48 -0
  26. data/doc/ex/cbezier1.rb +40 -0
  27. data/doc/ex/cbezier2.rb +40 -0
  28. data/doc/ex/cbezier3.rb +40 -0
  29. data/doc/ex/cbezier4.rb +41 -0
  30. data/doc/ex/cbezier5.rb +41 -0
  31. data/doc/ex/cbezier6.rb +51 -0
  32. data/doc/ex/channel.rb +26 -0
  33. data/doc/ex/channel_threshold.rb +48 -0
  34. data/doc/ex/charcoal.rb +12 -0
  35. data/doc/ex/chop.rb +29 -0
  36. data/doc/ex/circle.rb +31 -0
  37. data/doc/ex/clip_path.rb +56 -0
  38. data/doc/ex/coalesce.rb +60 -0
  39. data/doc/ex/color_fill_to_border.rb +29 -0
  40. data/doc/ex/color_floodfill.rb +28 -0
  41. data/doc/ex/color_histogram.rb +60 -0
  42. data/doc/ex/color_reset.rb +11 -0
  43. data/doc/ex/colorize.rb +16 -0
  44. data/doc/ex/colors.rb +65 -0
  45. data/doc/ex/composite.rb +135 -0
  46. data/doc/ex/contrast.rb +37 -0
  47. data/doc/ex/crop.rb +31 -0
  48. data/doc/ex/crop_with_gravity.rb +46 -0
  49. data/doc/ex/cycle_colormap.rb +21 -0
  50. data/doc/ex/demo.rb +324 -0
  51. data/doc/ex/drawcomp.rb +42 -0
  52. data/doc/ex/drop_shadow.rb +60 -0
  53. data/doc/ex/edge.rb +11 -0
  54. data/doc/ex/ellipse.rb +43 -0
  55. data/doc/ex/emboss.rb +11 -0
  56. data/doc/ex/enhance.rb +28 -0
  57. data/doc/ex/equalize.rb +11 -0
  58. data/doc/ex/flatten_images.rb +38 -0
  59. data/doc/ex/flip.rb +11 -0
  60. data/doc/ex/flop.rb +11 -0
  61. data/doc/ex/fonts.rb +20 -0
  62. data/doc/ex/frame.rb +12 -0
  63. data/doc/ex/gaussian_blur.rb +11 -0
  64. data/doc/ex/get_multiline_type_metrics.rb +53 -0
  65. data/doc/ex/get_pixels.rb +48 -0
  66. data/doc/ex/get_type_metrics.rb +140 -0
  67. data/doc/ex/gradientfill.rb +27 -0
  68. data/doc/ex/grav.rb +44 -0
  69. data/doc/ex/gravity.rb +80 -0
  70. data/doc/ex/hatchfill.rb +27 -0
  71. data/doc/ex/images/Ballerina.jpg +0 -0
  72. data/doc/ex/images/Ballerina3.jpg +0 -0
  73. data/doc/ex/images/Button_0.gif +0 -0
  74. data/doc/ex/images/Button_1.gif +0 -0
  75. data/doc/ex/images/Button_2.gif +0 -0
  76. data/doc/ex/images/Button_3.gif +0 -0
  77. data/doc/ex/images/Button_4.gif +0 -0
  78. data/doc/ex/images/Button_5.gif +0 -0
  79. data/doc/ex/images/Button_6.gif +0 -0
  80. data/doc/ex/images/Button_7.gif +0 -0
  81. data/doc/ex/images/Button_8.gif +0 -0
  82. data/doc/ex/images/Button_9.gif +0 -0
  83. data/doc/ex/images/Button_A.gif +0 -0
  84. data/doc/ex/images/Button_B.gif +0 -0
  85. data/doc/ex/images/Button_C.gif +0 -0
  86. data/doc/ex/images/Button_D.gif +0 -0
  87. data/doc/ex/images/Button_E.gif +0 -0
  88. data/doc/ex/images/Button_F.gif +0 -0
  89. data/doc/ex/images/Button_G.gif +0 -0
  90. data/doc/ex/images/Button_H.gif +0 -0
  91. data/doc/ex/images/Button_I.gif +0 -0
  92. data/doc/ex/images/Button_J.gif +0 -0
  93. data/doc/ex/images/Button_K.gif +0 -0
  94. data/doc/ex/images/Button_L.gif +0 -0
  95. data/doc/ex/images/Button_M.gif +0 -0
  96. data/doc/ex/images/Button_N.gif +0 -0
  97. data/doc/ex/images/Button_O.gif +0 -0
  98. data/doc/ex/images/Button_P.gif +0 -0
  99. data/doc/ex/images/Button_Q.gif +0 -0
  100. data/doc/ex/images/Button_R.gif +0 -0
  101. data/doc/ex/images/Button_S.gif +0 -0
  102. data/doc/ex/images/Button_T.gif +0 -0
  103. data/doc/ex/images/Button_U.gif +0 -0
  104. data/doc/ex/images/Button_V.gif +0 -0
  105. data/doc/ex/images/Button_W.gif +0 -0
  106. data/doc/ex/images/Button_X.gif +0 -0
  107. data/doc/ex/images/Button_Y.gif +0 -0
  108. data/doc/ex/images/Button_Z.gif +0 -0
  109. data/doc/ex/images/Cheetah.jpg +0 -0
  110. data/doc/ex/images/Coffee.wmf +0 -0
  111. data/doc/ex/images/Flower_Hat.jpg +0 -0
  112. data/doc/ex/images/Gold_Statue.jpg +0 -0
  113. data/doc/ex/images/Hot_Air_Balloons.jpg +0 -0
  114. data/doc/ex/images/Hot_Air_Balloons_H.jpg +0 -0
  115. data/doc/ex/images/No.wmf +0 -0
  116. data/doc/ex/images/Polynesia.jpg +0 -0
  117. data/doc/ex/images/Red_Rocks.jpg +0 -0
  118. data/doc/ex/images/Shorts.jpg +0 -0
  119. data/doc/ex/images/Snake.wmf +0 -0
  120. data/doc/ex/images/Violin.jpg +0 -0
  121. data/doc/ex/images/graydient230x6.gif +0 -0
  122. data/doc/ex/images/logo400x83.gif +0 -0
  123. data/doc/ex/images/model.miff +0 -0
  124. data/doc/ex/images/notimplemented.gif +0 -0
  125. data/doc/ex/images/smile.miff +0 -0
  126. data/doc/ex/images/spin.gif +0 -0
  127. data/doc/ex/implode.rb +32 -0
  128. data/doc/ex/level.rb +12 -0
  129. data/doc/ex/level_channel.rb +33 -0
  130. data/doc/ex/line.rb +40 -0
  131. data/doc/ex/map.rb +28 -0
  132. data/doc/ex/map_f.rb +15 -0
  133. data/doc/ex/matte_fill_to_border.rb +42 -0
  134. data/doc/ex/matte_floodfill.rb +35 -0
  135. data/doc/ex/matte_replace.rb +42 -0
  136. data/doc/ex/median_filter.rb +28 -0
  137. data/doc/ex/modulate.rb +11 -0
  138. data/doc/ex/mono.rb +23 -0
  139. data/doc/ex/morph.rb +26 -0
  140. data/doc/ex/mosaic.rb +35 -0
  141. data/doc/ex/motion_blur.rb +11 -0
  142. data/doc/ex/negate.rb +11 -0
  143. data/doc/ex/negate_channel.rb +19 -0
  144. data/doc/ex/normalize.rb +11 -0
  145. data/doc/ex/oil_paint.rb +11 -0
  146. data/doc/ex/opacity.rb +38 -0
  147. data/doc/ex/opaque.rb +14 -0
  148. data/doc/ex/ordered_dither.rb +11 -0
  149. data/doc/ex/path.rb +62 -0
  150. data/doc/ex/pattern1.rb +25 -0
  151. data/doc/ex/pattern2.rb +26 -0
  152. data/doc/ex/polygon.rb +24 -0
  153. data/doc/ex/polyline.rb +23 -0
  154. data/doc/ex/posterize.rb +19 -0
  155. data/doc/ex/preview.rb +16 -0
  156. data/doc/ex/qbezierpath.rb +49 -0
  157. data/doc/ex/quantize-m.rb +25 -0
  158. data/doc/ex/radial_blur.rb +19 -0
  159. data/doc/ex/raise.rb +11 -0
  160. data/doc/ex/random_channel_threshold.rb +17 -0
  161. data/doc/ex/random_threshold_channel.rb +18 -0
  162. data/doc/ex/rectangle.rb +33 -0
  163. data/doc/ex/reduce_noise.rb +28 -0
  164. data/doc/ex/roll.rb +9 -0
  165. data/doc/ex/rotate.rb +43 -0
  166. data/doc/ex/rotate_f.rb +14 -0
  167. data/doc/ex/roundrect.rb +32 -0
  168. data/doc/ex/rubyname.rb +31 -0
  169. data/doc/ex/segment.rb +11 -0
  170. data/doc/ex/shade.rb +11 -0
  171. data/doc/ex/shave.rb +15 -0
  172. data/doc/ex/shear.rb +10 -0
  173. data/doc/ex/skewx.rb +50 -0
  174. data/doc/ex/skewy.rb +45 -0
  175. data/doc/ex/smile.rb +124 -0
  176. data/doc/ex/solarize.rb +11 -0
  177. data/doc/ex/splice.rb +16 -0
  178. data/doc/ex/spread.rb +11 -0
  179. data/doc/ex/stegano.rb +50 -0
  180. data/doc/ex/stroke_dasharray.rb +41 -0
  181. data/doc/ex/stroke_linecap.rb +44 -0
  182. data/doc/ex/stroke_linejoin.rb +48 -0
  183. data/doc/ex/stroke_width.rb +47 -0
  184. data/doc/ex/swirl.rb +17 -0
  185. data/doc/ex/text.rb +32 -0
  186. data/doc/ex/text_align.rb +36 -0
  187. data/doc/ex/text_antialias.rb +33 -0
  188. data/doc/ex/text_undercolor.rb +26 -0
  189. data/doc/ex/texture_fill_to_border.rb +34 -0
  190. data/doc/ex/texture_floodfill.rb +31 -0
  191. data/doc/ex/texturefill.rb +25 -0
  192. data/doc/ex/threshold.rb +13 -0
  193. data/doc/ex/to_blob.rb +14 -0
  194. data/doc/ex/translate.rb +37 -0
  195. data/doc/ex/transparent.rb +38 -0
  196. data/doc/ex/trim.rb +25 -0
  197. data/doc/ex/unsharp_mask.rb +28 -0
  198. data/doc/ex/viewex.rb +36 -0
  199. data/doc/ex/wave.rb +9 -0
  200. data/doc/ilist.html +1592 -0
  201. data/doc/image1.html +3009 -0
  202. data/doc/image2.html +2169 -0
  203. data/doc/image3.html +2815 -0
  204. data/doc/imageattrs.html +1319 -0
  205. data/doc/imusage.html +403 -0
  206. data/doc/index.html +418 -0
  207. data/doc/info.html +949 -0
  208. data/doc/magick.html +439 -0
  209. data/doc/scripts/doc.js +9 -0
  210. data/doc/struct.html +1334 -0
  211. data/doc/usage.html +1318 -0
  212. data/examples/describe.rb +44 -0
  213. data/examples/histogram.rb +289 -0
  214. data/examples/image_opacity.rb +29 -0
  215. data/examples/import_export.rb +31 -0
  216. data/examples/pattern_fill.rb +38 -0
  217. data/examples/rotating_text.rb +47 -0
  218. data/examples/thumbnail.rb +65 -0
  219. data/examples/vignette.rb +79 -0
  220. data/ext/RMagick/MANIFEST +239 -0
  221. data/ext/RMagick/extconf.rb.in +21 -0
  222. data/ext/RMagick/rmagick.h +938 -0
  223. data/ext/RMagick/rmagick_config.h.in +170 -0
  224. data/ext/RMagick/rmdraw.c +1308 -0
  225. data/ext/RMagick/rmfill.c +609 -0
  226. data/ext/RMagick/rmilist.c +685 -0
  227. data/ext/RMagick/rmimage.c +7980 -0
  228. data/ext/RMagick/rminfo.c +982 -0
  229. data/ext/RMagick/rmmain.c +1497 -0
  230. data/ext/RMagick/rmutil.c +2685 -0
  231. data/install.rb +1015 -0
  232. data/lib/RMagick.rb +1486 -0
  233. data/metaconfig.in +6 -0
  234. data/post-clean.rb +12 -0
  235. data/post-install.rb +36 -0
  236. data/post-setup.rb +245 -0
  237. data/rmagick.gemspec +22 -0
  238. data/uninstall.rb +71 -0
  239. metadata +286 -0
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
+ &laquo;&nbsp;<a href="image2.html">Prev</a> | <a href=
58
+ "index.html">Contents</a> | <a href=
59
+ "draw.html">Next</a>&nbsp;&raquo;
60
+ </div>
61
+
62
+ <h1>class Image <span class="superclass">&lt; 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>) -&gt; <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>) -&gt;
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>&times;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
+ &times;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> -&gt;
359
+ <em>image</em><br />
360
+ <span class="arg">image</span>.properties -&gt;
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">[&nbsp;]</a>,
380
+ <a href="image1.html#aset">[&nbsp;]=</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>) -&gt;
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
+ &lt;= <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.&nbsp; Empirical evidence&nbsp;suggests that distances
424
+ in color spaces such as YUV or YIQ&nbsp; correspond&nbsp;
425
+ to&nbsp; perceptual&nbsp; color differences more closely
426
+ than&nbsp; 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) -&gt;
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>) -&gt; <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>) -&gt;
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
+ -&gt; <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>) -&gt; <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) -&gt; <em>anImage</em><br />
775
+ <span class="arg">image</span>.resize(<span class=
776
+ "arg">scale_factor</span>) -&gt; <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 &gt; 1 increase the blurriness.
816
+ Values &lt; 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) -&gt; <em>image</em><br />
855
+ <span class="arg">image</span>.resize!(<span class=
856
+ "arg">scale_factor</span>) -&gt; <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>) -&gt;
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>) -&gt; <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>) -&gt; <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
+ -&gt; <span class="arg">anImage</span><br />
996
+ <span class="arg">image</span>.sample(<span class=
997
+ "arg">scale_factor</span>) -&gt; <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
+ -&gt; <em>image</em><br />
1046
+ <span class="arg">image</span>.sample!(<span class=
1047
+ "arg">scale_factor</span>) -&gt; <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
+ -&gt; <em>anImage</em><br />
1066
+ <span class="arg">image</span>.scale(<span class=
1067
+ "arg">scale_factor</span>) -&gt; <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
+ -&gt; <em>image</em><br />
1113
+ <span class="arg">image</span>.scale!(<span class=
1114
+ "arg">scale_factor</span>) -&gt; <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>) -&gt;
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>) -&gt; <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
+ -&gt; <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
+ -&gt; <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>...] ) -&gt; <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>) -&gt;
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>) -&gt;
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>) -&gt;
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 -&gt;
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>&times;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 &raquo;
1526
+ ex/images/Flower_Hat.jpg JPEG 200x250 DirectClass 8-bit 9761b
1527
+ img.properties &raquo;
1528
+ {"comment"=&gt;"File written by Adobe Photoshop\250 4.0"}
1529
+ img.signature &raquo;
1530
+ "485e01ecba1a1f47924d67b887cb07b474f695841733796dfa3c2876965c7e8b"
1531
+ img.properties &raquo;
1532
+ {"signature"=&gt;"485e01ecba1a1f47924d67b887cb07b474f695841733796dfa3c2876965c7e8b",
1533
+ "comment"=&gt;"File written by Adobe Photoshop\250 4.0"}
1534
+ </pre>
1535
+
1536
+ <h4>See also</h4><p><a href="image1.html#spaceship">&lt;=&gt;</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>]) -&gt; <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) -&gt; <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) -&gt; <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 -&gt; <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 &raquo;
1721
+ #&lt;Magick::Statistics
1722
+ red=
1723
+ #&lt;Magick::Statistics::Channel
1724
+ max=1.0,
1725
+ min=0.0,
1726
+ mean=0.627182352941187,
1727
+ stddev=0.231399683489667,
1728
+ var=0.0535458135191179&gt;,
1729
+ green=
1730
+ #&lt;Magick::Statistics::Channel
1731
+ max=1.0,
1732
+ min=0.0,
1733
+ mean=0.571999607843132,
1734
+ stddev=0.22246563644744,
1735
+ var=0.0494909593999647&gt;,
1736
+ blue=
1737
+ #&lt;Magick::Statistics::Channel
1738
+ max=1.0,
1739
+ min=0.0,
1740
+ mean=0.508869725490209,
1741
+ stddev=0.269422111063184,
1742
+ var=0.0725882739297426&gt;,
1743
+ opacity=
1744
+ #&lt;Magick::Statistics::Channel
1745
+ max=0.0,
1746
+ min=0.0,
1747
+ mean=0.0,
1748
+ stddev=0.0,
1749
+ var=0.0&gt;&gt;
1750
+
1751
+ p stats.red.stddev &raquo; 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>) -&gt;
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>) -&gt; <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>) -&gt; <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! -&gt;
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>) -&gt; <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>) -&gt; <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
+ -&gt; <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>) -&gt; <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
+ -&gt; <em>anImage</em><br />
2154
+ <span class="arg">image</span>.thumbnail(<span class=
2155
+ "arg">scale_factor</span>) -&gt; <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 &lt;
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
+ -&gt; <em>image</em><br />
2206
+ <span class="arg">image</span>.thumbnail!(<span class=
2207
+ "arg">scale_factor</span>) -&gt; <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>-&gt; <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>) -&gt; <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
+ &raquo; ex/images/Flower_Hat.jpg JPEG 200x250 DirectClass 8-bit 9761b
2290
+ pixel = img.pixel_color(img.columns/2, img.rows/2)
2291
+ &raquo; #&lt;struct Magick::Pixel red=216, green=147, blue=106, opacity=0&gt;
2292
+ img.to_color(pixel)
2293
+ &raquo; "#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) -&gt;
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 -&gt;
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! -&gt; <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>) -&gt; <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>...]) -&gt;
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>) -&gt;
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>) {&nbsp;|view|
2575
+ <em>block</em>&nbsp;} -&gt; <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 &times;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) -&gt; <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>]]]) -&gt; <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> -&gt; <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> -&gt; <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. &times;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, &times;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">&nbsp;</p>
2808
+
2809
+ <div class="nav">
2810
+ &laquo;&nbsp;<a href="image2.html">Prev</a> | <a href=
2811
+ "index.html">Contents</a> | <a href=
2812
+ "draw.html">Next</a>&nbsp;&raquo;
2813
+ </div>
2814
+ </body>
2815
+ </html>