rmagick 1.13.0 → 1.14.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of rmagick might be problematic. Click here for more details.
- data/ChangeLog +34 -0
- data/README.html +12 -29
- data/README.txt +10 -26
- data/configure +768 -73
- data/configure.ac +29 -26
- data/doc/comtasks.html +3 -4
- data/doc/constants.html +85 -67
- data/doc/draw.html +22 -0
- data/doc/ex/dissolve.rb +13 -0
- data/doc/ex/edge.rb +1 -1
- data/doc/ex/mask.rb +37 -0
- data/doc/ex/sketch.rb +25 -0
- data/doc/ex/watermark.rb +23 -0
- data/doc/ilist.html +11 -13
- data/doc/image1.html +601 -52
- data/doc/image2.html +637 -28
- data/doc/image3.html +339 -54
- data/doc/imageattrs.html +211 -41
- data/doc/imusage.html +41 -2
- data/doc/index.html +8 -6
- data/doc/info.html +57 -42
- data/doc/optequiv.html +1919 -0
- data/doc/rvg.html +45 -42
- data/doc/scripts/doc.js +14 -1
- data/doc/scripts/stripeTables.js +23 -0
- data/doc/usage.html +66 -15
- data/{doc/ex → examples}/demo.rb +0 -0
- data/examples/find_similar_region.rb +34 -0
- data/examples/import_export.rb +1 -1
- data/examples/pattern_fill.rb +2 -2
- data/examples/rotating_text.rb +2 -4
- data/examples/thumbnail.rb +1 -1
- data/ext/RMagick/MANIFEST +9 -4
- data/ext/RMagick/extconf.rb.in +1 -1
- data/ext/RMagick/rmagick.h +47 -10
- data/ext/RMagick/rmagick_config.h.in +24 -0
- data/ext/RMagick/rmdraw.c +32 -7
- data/ext/RMagick/rmilist.c +55 -37
- data/ext/RMagick/rmimage.c +1588 -447
- data/ext/RMagick/rminfo.c +94 -3
- data/ext/RMagick/rmmain.c +68 -7
- data/ext/RMagick/rmutil.c +67 -9
- data/lib/RMagick.rb +190 -53
- data/lib/rvg/stretchable.rb +17 -13
- data/rmagick.gemspec +1 -1
- metadata +11 -6
- data/doc/ex/level_channel.rb +0 -33
- data/doc/ex/opaque.rb +0 -14
data/doc/image3.html
CHANGED
@@ -93,6 +93,8 @@
|
|
93
93
|
|
94
94
|
<li><a href="#reduce_noise">reduce_noise</a></li>
|
95
95
|
|
96
|
+
<li><a href="#resample">resample</a></li>
|
97
|
+
|
96
98
|
<li><a href="#resize">resize</a></li>
|
97
99
|
|
98
100
|
<li><a href="#resize_bang">resize!</a></li>
|
@@ -145,6 +147,8 @@
|
|
145
147
|
|
146
148
|
<li><a href="#signature">signature</a></li>
|
147
149
|
|
150
|
+
<li><a href="#sketch">sketch</a></li>
|
151
|
+
|
148
152
|
<li><a href="#solarize">solarize</a></li>
|
149
153
|
|
150
154
|
<li><a href="#splice">splice</a></li>
|
@@ -197,6 +201,8 @@
|
|
197
201
|
|
198
202
|
<li><a href="#trim_bang">trim!</a></li>
|
199
203
|
|
204
|
+
<li><a href="#unique_colors">unique_colors</a></li>
|
205
|
+
|
200
206
|
<li><a href="#unsharp_mask">unsharp_mask</a></li>
|
201
207
|
|
202
208
|
<li><a href=
|
@@ -206,6 +212,8 @@
|
|
206
212
|
|
207
213
|
<li><a href="#vignette">vignette</a></li>
|
208
214
|
|
215
|
+
<li><a href="#watermark">watermark</a></li>
|
216
|
+
|
209
217
|
<li><a href="#wave">wave</a></li>
|
210
218
|
|
211
219
|
<li><a href="#white_threshold">white_threshold</a></li>
|
@@ -360,48 +368,26 @@
|
|
360
368
|
|
361
369
|
<p>self</p>
|
362
370
|
|
371
|
+
<h4>See also</h4>
|
372
|
+
|
373
|
+
<p><a href="image1.html#add_profile">add_profile</a> and
|
374
|
+
<a href="image1.html#delete_profile">delete_profile</a> perform
|
375
|
+
very similar functions. However, <code>add_profile</code>
|
376
|
+
accepts the name of a profile file on disk instead of the
|
377
|
+
profile data itself and, if the file contains more than one
|
378
|
+
profile, will load all the profiles at once.</p>
|
379
|
+
|
363
380
|
<h4>Magick API</h4>
|
364
381
|
|
365
382
|
<p>ProfileImage</p>
|
366
383
|
|
367
384
|
<h4>Notes</h4>
|
368
385
|
|
369
|
-
<
|
370
|
-
|
371
|
-
|
372
|
-
|
373
|
-
|
374
|
-
|
375
|
-
<ol style="list-style-type: lower-alpha">
|
376
|
-
<li>Write the image to a file using the profile name as
|
377
|
-
the filename extension ("myimage.app1", for example).
|
378
|
-
<pre>
|
379
|
-
img.write("myimage.app1")
|
380
|
-
</pre>
|
381
|
-
</li>
|
382
|
-
|
383
|
-
<li>To capture the profile information in a string,
|
384
|
-
assign the profile name to the <a href=
|
385
|
-
"imageattrs.html#format">format=</a> attribute and call
|
386
|
-
<a href="image3.html#to_blob">to_blob.</a>
|
387
|
-
<pre>
|
388
|
-
img.format = 'iptc'
|
389
|
-
profile_str = img.to_blob
|
390
|
-
</pre><a href=
|
391
|
-
"http://www.imagemagick.org/script/formats.php#embedded">
|
392
|
-
This page (ImageMagick)</a> and <a href=
|
393
|
-
"http://www.graphicsmagick.org/www/formats.html">this
|
394
|
-
page (GraphicsMagick)</a> list the supported profiles.
|
395
|
-
</li>
|
396
|
-
</ol>
|
397
|
-
</li>
|
398
|
-
|
399
|
-
<li>×Magick does not automatically remove profiles when
|
400
|
-
resizing images. If you are trying to make your JPEG
|
401
|
-
thumbnail images as small as possible, use
|
402
|
-
<code>profile!</code> to remove any profiles from the image
|
403
|
-
as well. Also see <a href="#strip_bang">strip!</a></li>
|
404
|
-
</ol>
|
386
|
+
<p>×Magick does not automatically remove profiles when
|
387
|
+
resizing images. If you are trying to make your JPEG thumbnail
|
388
|
+
images as small as possible, use <code>profile!</code> to
|
389
|
+
remove any profiles from the image as well. Also see <a href=
|
390
|
+
"#strip_bang">strip!</a></p>
|
405
391
|
</div>
|
406
392
|
|
407
393
|
<div class="sig">
|
@@ -562,6 +548,10 @@ profile_str = img.to_blob
|
|
562
548
|
|
563
549
|
<li><code>LShiftQuantumOperator</code></li>
|
564
550
|
|
551
|
+
<li><code>MaxQuantumOperator<sup>*</sup></code></li>
|
552
|
+
|
553
|
+
<li><code>MinQuantumOperator<sup>*</sup></code></li>
|
554
|
+
|
565
555
|
<li><code>MultiplyQuantumOperator</code></li>
|
566
556
|
|
567
557
|
<li><code>OrQuantumOperator</code></li>
|
@@ -571,7 +561,7 @@ profile_str = img.to_blob
|
|
571
561
|
<li><code>SubtractQuantumOperator</code></li>
|
572
562
|
|
573
563
|
<li><code>XorQuantumOperator</code></li>
|
574
|
-
</ul>
|
564
|
+
</ul><sup>*</sup> Available in ImageMagick 6.2.0 and later.
|
575
565
|
</dd>
|
576
566
|
|
577
567
|
<dt>rvalue</dt>
|
@@ -866,11 +856,57 @@ random_threshold_channel(geom, RedChannel)
|
|
866
856
|
<p>ReduceNoiseImage</p>
|
867
857
|
</div>
|
868
858
|
|
859
|
+
<div class="sig">
|
860
|
+
<h3 id="resample">resample</h3>
|
861
|
+
|
862
|
+
<p><span class="arg">image</span>.resample(<span class=
|
863
|
+
"arg">horizontal_res</span>=72.0[, <span class=
|
864
|
+
"arg">vertical_res</span>]) -> <em>anImage</em></p>
|
865
|
+
</div>
|
866
|
+
|
867
|
+
<div class="desc">
|
868
|
+
<h4>Description</h4>
|
869
|
+
|
870
|
+
<p class="imquote">Resample image to specified horizontal and
|
871
|
+
vertical resolution.</p>
|
872
|
+
|
873
|
+
<p><span class="imquote">Resize the image so that its rendered
|
874
|
+
size remains the same as the original at the specified target
|
875
|
+
resolution. For example, if a 300 DPI image renders at 3 inches
|
876
|
+
by 2 inches on a 300 DPI device, when the image has been
|
877
|
+
resampled to 72 DPI, it will render at 3 inches by 2 inches on
|
878
|
+
a 72 DPI device. Note that only a small number of image formats
|
879
|
+
(e.g. JPEG, PNG, and TIFF) are capable of storing the image
|
880
|
+
resolution. For formats which do not support an image
|
881
|
+
resolution, the original resolution of the image must be
|
882
|
+
specified via</span> the <a href=
|
883
|
+
"imageattrs.html#density">density</a> attribute <span class=
|
884
|
+
"imquote">prior to specifying the resample
|
885
|
+
resolution.</span></p>
|
886
|
+
|
887
|
+
<h4>Arguments</h4>
|
888
|
+
|
889
|
+
<dl>
|
890
|
+
<dt>horizontal_res</dt>
|
891
|
+
|
892
|
+
<dd>the target horizontal resolution. The default is
|
893
|
+
72.0.</dd>
|
894
|
+
|
895
|
+
<dt>vertical_res</dt>
|
896
|
+
|
897
|
+
<dd>the target vertical resolution. The default is
|
898
|
+
<span class="arg">horizontal_res</span>.</dd>
|
899
|
+
</dl>
|
900
|
+
</div>
|
901
|
+
|
869
902
|
<div class="sig">
|
870
903
|
<h3 id="resize">resize</h3>
|
871
904
|
|
872
905
|
<p><span class="arg">image</span>.resize(<span class=
|
873
906
|
"arg">new_width</span>, <span class="arg">new_height</span>,
|
907
|
+
<em>filter</em>=<a href=
|
908
|
+
"constants.html#FilterType">LanczosFilter</a>,
|
909
|
+
<em>support</em>=1.0) -> <em>image</em><br />
|
874
910
|
<span class="arg">image</span>.resize(<span class=
|
875
911
|
"arg">scale_factor</span>) -> <em>anImage</em></p>
|
876
912
|
</div>
|
@@ -909,13 +945,12 @@ random_threshold_channel(geom, RedChannel)
|
|
909
945
|
IIR (infinite impulse response). Bessel and Sinc are windowed
|
910
946
|
(brought down to zero) with the Blackman filter.</span></dd>
|
911
947
|
|
912
|
-
<dt>
|
948
|
+
<dt>support</dt>
|
913
949
|
|
914
|
-
<dd>
|
915
|
-
|
916
|
-
|
917
|
-
|
918
|
-
attribute.</dd>
|
950
|
+
<dd>Values > 1 increase the blurriness. Values < 1
|
951
|
+
increase the sharpness. If this argument is not specified,
|
952
|
+
<code>resize</code> uses the value of the receiver's <a href=
|
953
|
+
"imageattrs.html#Image.blur">blur</a> attribute.</dd>
|
919
954
|
|
920
955
|
<dt>scale_factor</dt>
|
921
956
|
|
@@ -950,7 +985,7 @@ random_threshold_channel(geom, RedChannel)
|
|
950
985
|
<p><em>image</em>.resize!(<em>new_width</em>,
|
951
986
|
<em>new_height</em>, <em>filter</em>=<a href=
|
952
987
|
"constants.html#FilterType">LanczosFilter</a>,
|
953
|
-
<em>
|
988
|
+
<em>support</em>=1.0) -> <em>image</em><br />
|
954
989
|
<span class="arg">image</span>.resize!(<span class=
|
955
990
|
"arg">scale_factor</span>) -> <em>image</em></p>
|
956
991
|
</div>
|
@@ -1069,7 +1104,8 @@ random_threshold_channel(geom, RedChannel)
|
|
1069
1104
|
<h3 id="rotate">rotate</h3>
|
1070
1105
|
|
1071
1106
|
<p><span class="arg">image</span>.rotate(<span class=
|
1072
|
-
"arg">amount</span>
|
1107
|
+
"arg">amount</span> [, <span class="arg">qualifier</span>])
|
1108
|
+
-> <em>anImage</em></p>
|
1073
1109
|
</div>
|
1074
1110
|
|
1075
1111
|
<div class="desc">
|
@@ -1080,16 +1116,31 @@ random_threshold_channel(geom, RedChannel)
|
|
1080
1116
|
counter-clockwise. <span class="imquote">Rotated images are
|
1081
1117
|
usually larger than the originals and have "empty" triangular
|
1082
1118
|
corners. Empty triangles left over from shearing the image are
|
1083
|
-
filled with the
|
1084
|
-
|
1119
|
+
filled with the <a href=
|
1120
|
+
"imageattrs.html#background_color">background
|
1121
|
+
color</a>.</span></p>
|
1085
1122
|
|
1086
1123
|
<h4>Arguments</h4>
|
1087
1124
|
|
1088
|
-
<
|
1125
|
+
<dl>
|
1126
|
+
<dt>amount</dt>
|
1127
|
+
|
1128
|
+
<dd>The number of degrees to rotate the image.</dd>
|
1129
|
+
|
1130
|
+
<dt>qualifier</dt>
|
1131
|
+
|
1132
|
+
<dd>If present, either ">" or "<". If ">", rotates
|
1133
|
+
the image only if the image's width exceeds its height. If
|
1134
|
+
"<" rotates the image only if its height exceeds its
|
1135
|
+
width. If this argument is omitted the image is always
|
1136
|
+
rotated.</dd>
|
1137
|
+
</dl>
|
1089
1138
|
|
1090
1139
|
<h4>Returns</h4>
|
1091
1140
|
|
1092
|
-
<p>A new image</
|
1141
|
+
<p>A new image, or <code>nil</code> if the image was not
|
1142
|
+
rotated because it did not meet the qualification specified by
|
1143
|
+
the second argument.</p>
|
1093
1144
|
|
1094
1145
|
<h4>Example</h4>
|
1095
1146
|
|
@@ -1125,7 +1176,8 @@ random_threshold_channel(geom, RedChannel)
|
|
1125
1176
|
<h3 id="rotate_bang">rotate!</h3>
|
1126
1177
|
|
1127
1178
|
<p><span class="arg">image</span>.rotate!(<span class=
|
1128
|
-
"arg">amount</span>
|
1179
|
+
"arg">amount</span> [, <span class="arg">qualifier</span>])
|
1180
|
+
-> <em>image</em></p>
|
1129
1181
|
</div>
|
1130
1182
|
|
1131
1183
|
<div class="desc">
|
@@ -1135,7 +1187,9 @@ random_threshold_channel(geom, RedChannel)
|
|
1135
1187
|
|
1136
1188
|
<h4>Returns</h4>
|
1137
1189
|
|
1138
|
-
<p>self</
|
1190
|
+
<p>self, or <code>nil</code> if the image was not rotated
|
1191
|
+
because it did not meet the qualification specified by the
|
1192
|
+
second argument.</p>
|
1139
1193
|
</div>
|
1140
1194
|
|
1141
1195
|
<div class="sig">
|
@@ -1468,7 +1522,9 @@ random_threshold_channel(geom, RedChannel)
|
|
1468
1522
|
|
1469
1523
|
<dt>azimuth, elevation</dt>
|
1470
1524
|
|
1471
|
-
<dd>The light source direction
|
1525
|
+
<dd>The light source direction. The azimuth is measured in
|
1526
|
+
degrees. 0° is at 9 o'clock. Increasing values move the
|
1527
|
+
light source counter-clockwise.</dd>
|
1472
1528
|
</dl>
|
1473
1529
|
|
1474
1530
|
<h4>Returns</h4>
|
@@ -1554,7 +1610,7 @@ random_threshold_channel(geom, RedChannel)
|
|
1554
1610
|
id="shadowed" onmouseover=
|
1555
1611
|
"this.style.display='none';shadowless.style.display='';" src=
|
1556
1612
|
"ex/shadow_after.gif" alt="shadow example"
|
1557
|
-
|
1613
|
+
/></a> <img src="ex/images/spin.gif" alt="" style=
|
1558
1614
|
"margin-bottom: 120px" title=
|
1559
1615
|
"Mouse over the example to see the original image" /></p>
|
1560
1616
|
|
@@ -1772,7 +1828,7 @@ random_threshold_channel(geom, RedChannel)
|
|
1772
1828
|
<img id="sheared" onmouseover=
|
1773
1829
|
"this.style.display='none'; noshear.style.display='';" src=
|
1774
1830
|
"ex/shear.jpg" alt="shear example"
|
1775
|
-
|
1831
|
+
/></a><img src="ex/images/spin.gif" alt="" class=
|
1776
1832
|
"spin" style="left: 253px; top: 34px" title=
|
1777
1833
|
"Mouse over the example to see the original image" /></p>
|
1778
1834
|
|
@@ -1894,6 +1950,51 @@ img.properties »
|
|
1894
1950
|
<p>SignatureImage</p>
|
1895
1951
|
</div>
|
1896
1952
|
|
1953
|
+
<div class="sig">
|
1954
|
+
<h3 id="sketch">sketch</h3>
|
1955
|
+
|
1956
|
+
<p><span class="arg">image</span>.sketch(<span class=
|
1957
|
+
"arg">radius</span>=0.0, <span class="arg">sigma</span>=1.0,
|
1958
|
+
<span class="arg">angle</span>=0.0) -> <em>anImage</em></p>
|
1959
|
+
</div>
|
1960
|
+
|
1961
|
+
<div class="desc">
|
1962
|
+
<h4>Description</h4>
|
1963
|
+
|
1964
|
+
<p>Simulates a pencil sketch. For best results start with a
|
1965
|
+
grayscale image.</p>
|
1966
|
+
|
1967
|
+
<h4>Arguments</h4>
|
1968
|
+
|
1969
|
+
<dl>
|
1970
|
+
<dt>radius, sigma</dt>
|
1971
|
+
|
1972
|
+
<dd>The radius and sigma of the Gaussian operator</dd>
|
1973
|
+
|
1974
|
+
<dt>angle</dt>
|
1975
|
+
|
1976
|
+
<dd>The angle toward which the image is sketched.</dd>
|
1977
|
+
</dl>
|
1978
|
+
|
1979
|
+
<h4>Returns</h4>
|
1980
|
+
|
1981
|
+
<p>A new image</p>
|
1982
|
+
|
1983
|
+
<h4>Example</h4>
|
1984
|
+
|
1985
|
+
<p class="rollover"><a href=
|
1986
|
+
"javascript:popup('sketch.rb.html')"><img src="ex/sketch.jpg"
|
1987
|
+
title="Click to see the example script" alt="sketch example"
|
1988
|
+
onmouseover="this.src='ex/images/Flower_Hat.jpg'" onmouseout=
|
1989
|
+
"this.src='ex/sketch.jpg'" /></a> <img src="ex/images/spin.gif"
|
1990
|
+
alt="" class="spin" title=
|
1991
|
+
"Mouse over the example to see the original image" /></p>
|
1992
|
+
|
1993
|
+
<h4>Magick API</h4>
|
1994
|
+
|
1995
|
+
<p>SketchImage (available in ImageMagick 6.2.8)</p>
|
1996
|
+
</div>
|
1997
|
+
|
1897
1998
|
<div class="sig">
|
1898
1999
|
<h3 id="solarize">solarize</h3>
|
1899
2000
|
|
@@ -2168,6 +2269,10 @@ p stats.red.stddev » 0.231399683489667
|
|
2168
2269
|
<h4>Magick API</h4>
|
2169
2270
|
|
2170
2271
|
<p>SteganoImage</p>
|
2272
|
+
|
2273
|
+
<h4>See also</h4>
|
2274
|
+
|
2275
|
+
<p><a href="#watermark">watermark</a></p>
|
2171
2276
|
</div>
|
2172
2277
|
|
2173
2278
|
<div class="sig">
|
@@ -2899,6 +3004,29 @@ img.to_color(pixel)
|
|
2899
3004
|
<p>self</p>
|
2900
3005
|
</div>
|
2901
3006
|
|
3007
|
+
<div class="sig">
|
3008
|
+
<h3 id="unique_colors">unique_colors</h3>
|
3009
|
+
|
3010
|
+
<p><span class="arg">image</span>.unique_colors ->
|
3011
|
+
<em>anImage</em></p>
|
3012
|
+
</div>
|
3013
|
+
|
3014
|
+
<div class="desc">
|
3015
|
+
<h4>Description</h4>
|
3016
|
+
|
3017
|
+
<p>Constructs a new image with one pixel for each unique color
|
3018
|
+
in the image. The new image has 1 row. The row has 1 column for
|
3019
|
+
each unique pixel in the image.</p>
|
3020
|
+
|
3021
|
+
<h4>Returns</h4>
|
3022
|
+
|
3023
|
+
<p>A new image</p>
|
3024
|
+
|
3025
|
+
<h4>Magick API</h4>
|
3026
|
+
|
3027
|
+
<p>UniqueImageColors (available in ImageMagick 6.2.9)</p>
|
3028
|
+
</div>
|
3029
|
+
|
2902
3030
|
<div class="sig">
|
2903
3031
|
<h3 id="unsharp_mask">unsharp_mask</h3>
|
2904
3032
|
|
@@ -3231,6 +3359,163 @@ end
|
|
3231
3359
|
size, shape, and background color of the vignette.</p>
|
3232
3360
|
</div>
|
3233
3361
|
|
3362
|
+
<div class="sig">
|
3363
|
+
<h3 id="watermark">watermark</h3>
|
3364
|
+
|
3365
|
+
<p><span class="arg">image</span>.watermark(<span class=
|
3366
|
+
"arg">mark</span>, <span class="arg">lightness</span>=1.0,
|
3367
|
+
<span class="arg">saturation</span>=1.0, <span class=
|
3368
|
+
"arg">x_offset</span>=0, <span class="arg">y_offset</span>=0)
|
3369
|
+
-> <em>anImage</em><br />
|
3370
|
+
<span class="arg">image</span>.watermark(<span class=
|
3371
|
+
"arg">mark</span>, <span class="arg">lightness</span>=1.0,
|
3372
|
+
<span class="arg">saturation</span>=1.0, <span class=
|
3373
|
+
"arg">gravity</span>, <span class="arg">x_offset</span>=0,
|
3374
|
+
<span class="arg">y_offset</span>=0) -> <em>anImage</em></p>
|
3375
|
+
</div>
|
3376
|
+
|
3377
|
+
<div class="desc">
|
3378
|
+
<h4>Description</h4>
|
3379
|
+
|
3380
|
+
<p>Composites a watermark image on the target image using the
|
3381
|
+
<a href="constants.html#CompositeOperator">Modulate</a>
|
3382
|
+
composite operator. This composite operation operates in the
|
3383
|
+
HSL colorspace and combines part of the lightness, part of the
|
3384
|
+
saturation, and all of the hue of each pixel in the watermark
|
3385
|
+
with the corresponding pixel in the target image</p>
|
3386
|
+
|
3387
|
+
<h4>Arguments</h4>
|
3388
|
+
|
3389
|
+
<dl>
|
3390
|
+
<dt>mark</dt>
|
3391
|
+
|
3392
|
+
<dd>The watermark image. Either an imagelist or an image. If
|
3393
|
+
an imagelist, uses the current image.</dd>
|
3394
|
+
|
3395
|
+
<dt>lightness</dt>
|
3396
|
+
|
3397
|
+
<dd>The fraction of the lightness component of the watermark
|
3398
|
+
pixels to be composited onto the target image. Must be a
|
3399
|
+
non-negative number or a string in the form "NN%". If
|
3400
|
+
lightness is a number it is interpreted as a percentage. Both
|
3401
|
+
0.25 and "25%" mean 25%. The default is 100%.</dd>
|
3402
|
+
|
3403
|
+
<dt>saturation</dt>
|
3404
|
+
|
3405
|
+
<dd>The fraction of the saturation component of the watermark
|
3406
|
+
pixels to be composited onto the target image. Must be a
|
3407
|
+
non-negative number or a string in the form "NN%". If
|
3408
|
+
lightness is a number it is interpreted as a percentage. Both
|
3409
|
+
0.25 and "25%" mean 25%. The default is 100%.</dd>
|
3410
|
+
|
3411
|
+
<dt>x_offset</dt>
|
3412
|
+
|
3413
|
+
<dd>The offset of the watermark, measured from the left-hand
|
3414
|
+
side of the target image. The default is 0.</dd>
|
3415
|
+
|
3416
|
+
<dt>y_offset</dt>
|
3417
|
+
|
3418
|
+
<dd>The offset of the watermark, measured from the top of the
|
3419
|
+
target image. The default is 0.</dd>
|
3420
|
+
</dl>
|
3421
|
+
|
3422
|
+
<p>Watermark can be called with a <span class=
|
3423
|
+
"arg">gravity</span> argument or without. When a <span class=
|
3424
|
+
"arg">gravity</span> argument is specified but the <span class=
|
3425
|
+
"arg">x-</span> and <span class="arg">y-offsets</span> are
|
3426
|
+
omitted, the watermark is positioned based on the value of the
|
3427
|
+
<span class="arg">gravity</span> argument:</p>
|
3428
|
+
|
3429
|
+
<dl>
|
3430
|
+
<dt>NorthWestGravity</dt>
|
3431
|
+
|
3432
|
+
<dd>The watermark abuts the top and left sides of the
|
3433
|
+
image.</dd>
|
3434
|
+
|
3435
|
+
<dt>NorthGravity</dt>
|
3436
|
+
|
3437
|
+
<dd>The watermark is centered left-to-right and abuts the top
|
3438
|
+
of the image.</dd>
|
3439
|
+
|
3440
|
+
<dt>NorthEastGravity</dt>
|
3441
|
+
|
3442
|
+
<dd>The watermark abuts the top and right sides of the
|
3443
|
+
image.</dd>
|
3444
|
+
|
3445
|
+
<dt>EastGravity</dt>
|
3446
|
+
|
3447
|
+
<dd>The watermark is centered top-to-bottom and abuts the
|
3448
|
+
right side of the image.</dd>
|
3449
|
+
|
3450
|
+
<dt>SouthEastGravity</dt>
|
3451
|
+
|
3452
|
+
<dd>The watermark abuts the bottom and right sides of the
|
3453
|
+
image.</dd>
|
3454
|
+
|
3455
|
+
<dt>SouthGravity</dt>
|
3456
|
+
|
3457
|
+
<dd>The watermark is centered left-to-right and abuts the
|
3458
|
+
bottom of the image.</dd>
|
3459
|
+
|
3460
|
+
<dt>SouthWestGravity</dt>
|
3461
|
+
|
3462
|
+
<dd>The watermark abuts the bottom and left sides of the
|
3463
|
+
image.</dd>
|
3464
|
+
|
3465
|
+
<dt>WestGravity</dt>
|
3466
|
+
|
3467
|
+
<dd>The watermark is centered top-to-bottom and abuts the
|
3468
|
+
left side of the image.</dd>
|
3469
|
+
|
3470
|
+
<dt>CenterGravity</dt>
|
3471
|
+
|
3472
|
+
<dd>The watermark is centered left-to-right and
|
3473
|
+
top-to-bottom.</dd>
|
3474
|
+
</dl>
|
3475
|
+
|
3476
|
+
<p>When the <span class="arg">gravity</span> argument is
|
3477
|
+
present and the <span class="arg">x-offset</span> (and
|
3478
|
+
optionally the <span class="arg">y-offset</span>) is present,
|
3479
|
+
the <span class="arg">x-</span> and <span class=
|
3480
|
+
"arg">y-offset</span> are measured from the right and/or bottom
|
3481
|
+
edges of the target image based on the value of <span class=
|
3482
|
+
"arg">gravity</span>. If the argument is NorthEastGravity,
|
3483
|
+
EastGravity, or SouthEastGravity, the <span class=
|
3484
|
+
"arg">x-offset</span> is measured from the right side of the
|
3485
|
+
image. If the argument is SouthEastGravity, SouthGravity, or
|
3486
|
+
SouthWestGravity, the <span class="arg">y-offset</span> is
|
3487
|
+
measured from the bottom of the image. All other values are
|
3488
|
+
ignored and the <span class="arg">x-</span> and <span class=
|
3489
|
+
"arg">y-offset</span> are measured from the upper-left corner
|
3490
|
+
of the image.</p>
|
3491
|
+
|
3492
|
+
<h4>Returns</h4>
|
3493
|
+
|
3494
|
+
<p>A new image</p>
|
3495
|
+
|
3496
|
+
<h4>Example</h4>
|
3497
|
+
|
3498
|
+
<p>See <a href=
|
3499
|
+
"http://www.cit.gu.edu.au/~anthony/graphics/imagick6/annotating/#wmark_image">
|
3500
|
+
"Watermarking with Images"</a> in Anthony Thyssen's <a href=
|
3501
|
+
"http://www.cit.gu.edu.au/~anthony/graphics/imagick6/"><cite>Examples
|
3502
|
+
of ImageMagick Usage</cite></a>.</p>
|
3503
|
+
|
3504
|
+
<p class="rollover"><a href=
|
3505
|
+
"javascript:popup('watermark.rb.html')"><img src=
|
3506
|
+
"ex/watermark.jpg" alt="watermark example" title=
|
3507
|
+
"Click to see the example script" onmouseover=
|
3508
|
+
"this.src='ex/images/Flower_Hat.jpg'" onmouseout=
|
3509
|
+
"this.src='ex/watermark.jpg'" /></a> <img src=
|
3510
|
+
"ex/images/spin.gif" alt="" class="spin" title=
|
3511
|
+
"Mouse over the example to see the original image" /></p>
|
3512
|
+
|
3513
|
+
<h4>See also</h4>
|
3514
|
+
|
3515
|
+
<p><a href="image1.html#composite">composite</a>, <a href=
|
3516
|
+
"#stegano">stegano</a></p>
|
3517
|
+
</div>
|
3518
|
+
|
3234
3519
|
<div class="sig">
|
3235
3520
|
<h3 id="wave">wave</h3>
|
3236
3521
|
|