rmagick 2.5.2 → 2.6.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.

Files changed (52) hide show
  1. data/ChangeLog +29 -0
  2. data/README.html +7 -7
  3. data/doc/comtasks.html +2 -2
  4. data/doc/constants.html +22 -5
  5. data/doc/draw.html +2 -2
  6. data/doc/ex/affinity.rb +12 -0
  7. data/doc/ex/affinity_images.rb +21 -0
  8. data/doc/ex/composite_tiled.rb +23 -0
  9. data/doc/ex/images/Apple.miff +0 -0
  10. data/doc/ex/images/Leaf.miff +0 -0
  11. data/doc/ex/images/Rocks_On_Beach.miff +0 -0
  12. data/doc/ex/images/Yellow_Rose.miff +0 -0
  13. data/doc/ex/level_colors.rb +11 -0
  14. data/doc/ilist.html +72 -30
  15. data/doc/image1.html +305 -34
  16. data/doc/image2.html +144 -18
  17. data/doc/image3.html +111 -8
  18. data/doc/imageattrs.html +10 -2
  19. data/doc/imusage.html +5 -5
  20. data/doc/index.html +3 -3
  21. data/doc/info.html +2 -2
  22. data/doc/magick.html +2 -2
  23. data/doc/optequiv.html +54 -9
  24. data/doc/rvg.html +2 -2
  25. data/doc/rvgclip.html +2 -2
  26. data/doc/rvggroup.html +2 -2
  27. data/doc/rvgimage.html +2 -2
  28. data/doc/rvgpattern.html +2 -2
  29. data/doc/rvgshape.html +2 -2
  30. data/doc/rvgstyle.html +2 -2
  31. data/doc/rvgtext.html +2 -2
  32. data/doc/rvgtspan.html +2 -2
  33. data/doc/rvgtut.html +2 -2
  34. data/doc/rvguse.html +2 -2
  35. data/doc/rvgxform.html +2 -2
  36. data/doc/struct.html +2 -2
  37. data/doc/usage.html +27 -8
  38. data/ext/RMagick/MANIFEST +9 -3
  39. data/ext/RMagick/extconf.rb +19 -3
  40. data/ext/RMagick/rmagick.h +23 -7
  41. data/ext/RMagick/rmdraw.c +74 -22
  42. data/ext/RMagick/rmfill.c +2 -2
  43. data/ext/RMagick/rmilist.c +79 -29
  44. data/ext/RMagick/rmimage.c +904 -393
  45. data/ext/RMagick/rminfo.c +9 -9
  46. data/ext/RMagick/rmmain.c +64 -9
  47. data/ext/RMagick/rmutil.c +158 -44
  48. data/lib/RMagick.rb +32 -1
  49. data/rmagick.gemspec +1 -1
  50. metadata +10 -4
  51. data/doc/ex/map.rb +0 -28
  52. data/doc/ex/map_f.rb +0 -15
data/ChangeLog CHANGED
@@ -1,3 +1,32 @@
1
+ RMagick 2.6.0
2
+ o Fix bug #21237, Image::write ignores format attribute when called with a
3
+ Tempfile pathname (bug report by Jack Shedd)
4
+ o Fix bug #21897, ImageList#from_blob abends when certain corrupt JPEG
5
+ images are used (bug report by Peter Szabo)
6
+ o Add Image#composite_tiled, Image#composite_tiled! (ref:
7
+ http://rubyforge.org/forum/forum.php?thread_id=27347&forum_id=33)
8
+ o Add Image#deskew (available with ImageMagick 6.4.2-5)
9
+ o Add Image#define, Image#undefine (available in ImageMagick 6.3.6)
10
+ o Add Image#level_colors (available in ImageMagick 6.4.2-1)
11
+ o Add Image#levelize_channel (available in ImageMagick 6.4.2-1)
12
+ o Add Image#affinity, ImageList#affinity (available in ImageMagick 6.4.3-6).
13
+ These methods replace Image#map and ImageList#map.
14
+ o Accept DitherMethod values for the dither argument to Image#quantize,
15
+ ImageList#quantize
16
+ o Add the BarrelDistortion, PolynomialDistortion, ShepardsDistortion,
17
+ PolarDistortion, and DePolarDistortion MagickDistortion Method enum values
18
+ (available in ImageMagick 6.4.2-6)
19
+ o Add the HorizontalTileVirtualPixelMethod and
20
+ VerticalTileVirtualPixelMethod VirtualPixelMethod enum values
21
+ (available in ImageMagick 6.4.2-6)
22
+ o Add DitherMethod enum class
23
+ o Added general-purpose OptionalMethodArguments class to handle ad-hoc
24
+ optional arguments.
25
+ o Support optional "distort:viewport" and "distort:scale" arguments to
26
+ Image#distort
27
+ o Support optional highlight_color and lowlight_color arguments
28
+ to Image#compare_channel
29
+
1
30
  RMagick 2.5.2
2
31
  o Add support for MergeLayer to Magick::ImageList#optimize_layers (patch
3
32
  #21189, submitted by Andrew Watson)
@@ -1,15 +1,15 @@
1
1
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
2
2
  <html>
3
3
  <head>
4
- <title>RMagick 2.5.2 README</title>
4
+ <title>RMagick 2.6.0 README</title>
5
5
  <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
6
6
  <meta name="GENERATOR" content="RedCloth">
7
7
  </head>
8
8
  <body>
9
- <h1>RMagick 2.5.2 <span class="caps">README</span></h1>
9
+ <h1>RMagick 2.6.0 <span class="caps">README</span></h1>
10
10
 
11
11
 
12
- <h2>07/15/08</h2>
12
+ <h2>09/10/08</h2>
13
13
 
14
14
 
15
15
  <h3>Table of Contents</h3>
@@ -75,12 +75,12 @@ depending on which tarball you have:</p>
75
75
 
76
76
 
77
77
  <pre>
78
- tar xvzf RMagick-2.5.2-tar.gz (gzipped tarball)
79
- tar xvjf RMagick-2.5.2-tar.bz2 (bzipped tarball)
78
+ tar xvzf RMagick-2.6.0-tar.gz (gzipped tarball)
79
+ tar xvjf RMagick-2.6.0-tar.bz2 (bzipped tarball)
80
80
  7z e RMagick-x.y.z.tar.lzma -so | tar xv (7zipped tarball)
81
81
  </pre>
82
82
 
83
- <p>Change to the RMagick-2.5.2 directory. If you are not using any
83
+ <p>Change to the RMagick-2.6.0 directory. If you are not using any
84
84
  configuration options (usually you don&#8217;t need to) enter the command</p>
85
85
 
86
86
 
@@ -191,7 +191,7 @@ systems, see the documentation for the dynamic loading facility.</p>
191
191
 
192
192
 
193
193
  <pre>
194
- hook /home/me/src/RMagick-2.5.2/./post-setup.rb failed:
194
+ hook /home/me/src/RMagick-2.6.0/./post-setup.rb failed:
195
195
  No such file or directory - "/tmp/rmagick6872.6"
196
196
  </pre>
197
197
 
@@ -6,7 +6,7 @@
6
6
  <meta name="generator" content=
7
7
  "HTML Tidy for Linux/x86 (vers 1 September 2005), see www.w3.org" />
8
8
 
9
- <title>RMagick 2.5.2: Common Tasks</title>
9
+ <title>RMagick 2.6.0: Common Tasks</title>
10
10
  <meta http-equiv="Content-Type" content=
11
11
  "text/html; charset=us-ascii" />
12
12
  <meta name="GENERATOR" content="Quanta Plus" />
@@ -31,7 +31,7 @@
31
31
  </head>
32
32
 
33
33
  <body>
34
- <h6 id="header">RMagick 2.5.2 User's Guide and Reference</h6>
34
+ <h6 id="header">RMagick 2.6.0 User's Guide and Reference</h6>
35
35
 
36
36
  <div class="nav">
37
37
  &laquo;&nbsp;<a href="optequiv.html">Prev</a> | <a href=
@@ -6,7 +6,7 @@
6
6
  <meta name="generator" content=
7
7
  "HTML Tidy for Linux/x86 (vers 1 September 2005), see www.w3.org" />
8
8
 
9
- <title>RMagick 2.5.2: Constants</title>
9
+ <title>RMagick 2.6.0: Constants</title>
10
10
  <meta http-equiv="Content-Type" content=
11
11
  "text/html; charset=us-ascii" />
12
12
  <meta name="GENERATOR" content="Quanta Plus" />
@@ -61,7 +61,7 @@
61
61
  </head>
62
62
 
63
63
  <body>
64
- <h6 id="header">RMagick 2.5.2 User's Guide and Reference</h6>
64
+ <h6 id="header">RMagick 2.6.0 User's Guide and Reference</h6>
65
65
 
66
66
  <div class="nav">
67
67
  &laquo;&nbsp;<a href="info.html">Prev</a> | <a href=
@@ -103,6 +103,8 @@
103
103
  <ul>
104
104
  <li><a href="#DisposeType">DisposeType</a></li>
105
105
 
106
+ <li><a href="#DitherMethod">DitherMethod</a></li>
107
+
106
108
  <li><a href="#EndianType">EndianType</a></li>
107
109
 
108
110
  <li><a href="#FilterTypes">FilterTypes</a></li>
@@ -117,13 +119,13 @@
117
119
  "#InterpolatePixelMethod">InterpolatePixelMethod</a></li>
118
120
 
119
121
  <li><a href="#MetricType">MetricType</a></li>
120
-
121
- <li><a href="#NoiseType">NoiseType</a></li>
122
122
  </ul>
123
123
  </div>
124
124
 
125
125
  <div class="toccol">
126
126
  <ul>
127
+ <li><a href="#NoiseType">NoiseType</a></li>
128
+
127
129
  <li><a href="#Opacity">Opacity</a></li>
128
130
 
129
131
  <li><a href="#OrientationType">OrientationType</a></li>
@@ -155,7 +157,7 @@
155
157
 
156
158
  <dd>An extended form of the <code>Version</code> constant with
157
159
  the format shown here:<br />
158
- <code>This is RMagick 2.0.0 ($Date: 2008/03/16 15:21:45 $)
160
+ <code>This is RMagick 2.0.0 ($Date: 2008/08/31 20:02:57 $)
159
161
  Copyright (C) 2008 by Timothy P. Hunter<br />
160
162
  Built with ImageMagick 6.3.7 01/05/08 Q16
161
163
  http://www.imagemagick.org<br />
@@ -910,6 +912,21 @@ ruby -rRMagick -e"Magick::ColorspaceType.values {|cs| puts cs}"
910
912
  rendering the image.</dd>
911
913
  </dl>
912
914
 
915
+ <h3 class="const" id="DitherMethod">DitherMethod</h3>
916
+
917
+ <p>Specify the method of dithering for <a href=
918
+ "image1.html#affinity">affinity</a>, <a href=
919
+ "image3.html#quantize">quantize</a>, <a href=
920
+ "image3.html#posterize">posterize</a>, etc.</p>
921
+
922
+ <dl>
923
+ <dt>NoDitherMethod</dt>
924
+
925
+ <dt>RiemersmaDitherMethod</dt>
926
+
927
+ <dt>FloydSteinbergDitherMethod</dt>
928
+ </dl>
929
+
913
930
  <h3 class="const" id="EndianType">EndianType</h3>
914
931
 
915
932
  <p>The value of the <a href="imageattrs.html#endian">endian</a>
@@ -6,7 +6,7 @@
6
6
  <meta name="generator" content=
7
7
  "HTML Tidy for Linux/x86 (vers 1 September 2005), see www.w3.org" />
8
8
 
9
- <title>RMagick 2.5.2: class Draw</title>
9
+ <title>RMagick 2.6.0: class Draw</title>
10
10
  <meta http-equiv="Content-Type" content=
11
11
  "text/html; charset=us-ascii" />
12
12
  <meta name="GENERATOR" content="Quanta Plus" />
@@ -25,7 +25,7 @@
25
25
  </head>
26
26
 
27
27
  <body>
28
- <h6 id="header">RMagick 2.5.2 User's Guide and Reference</h6>
28
+ <h6 id="header">RMagick 2.6.0 User's Guide and Reference</h6>
29
29
 
30
30
  <div class="nav">
31
31
  &laquo;&nbsp;<a href="image3.html">Prev</a> | <a href=
@@ -0,0 +1,12 @@
1
+ #! /usr/local/bin/ruby -w
2
+ require 'RMagick'
3
+
4
+ img = Magick::Image.read("images/Flower_Hat.jpg").first
5
+ rose = Magick::Image.read("images/Yellow_Rose.miff").first
6
+ begin
7
+ img.affinity(rose)
8
+ rescue NotImplementedError
9
+ img = Magick::Image.read("images/notimplemented.gif").first
10
+ end
11
+ img.write("affinity.jpg")
12
+
@@ -0,0 +1,21 @@
1
+ require 'RMagick'
2
+
3
+ images = Magick::ImageList.new("images/Apple.miff", "images/Rocks_On_Beach.miff", "images/Leaf.miff")
4
+ rose = Magick::Image.read("images/Yellow_Rose.miff").first
5
+ rose[:Label] = "Affinity Image"
6
+
7
+ result = Magick::ImageList.new
8
+ result += images
9
+ result << rose
10
+
11
+ begin
12
+ result += images.copy.affinity(rose)
13
+ montage = result.montage { self.tile = "4x2" }
14
+ montage.alpha Magick::DeactivateAlphaChannel
15
+ rescue NotImplementedError
16
+ montage = Magick::Image.read("images/notimplemented.gif").first
17
+ end
18
+
19
+ montage.write("affinity_images.jpg")
20
+
21
+
@@ -0,0 +1,23 @@
1
+ require 'RMagick'
2
+
3
+ # Create a transparent image to tile over the background image.
4
+ wm = Magick::Image.read("xc:none") { self.size = "100x50" }.first
5
+
6
+ # Draw "RMagick" in semi-transparent text on the transparent image.
7
+ gc = Magick::Draw.new
8
+ gc.fill '#ffffff7f'
9
+ gc.font_weight Magick::BoldWeight
10
+ gc.font_size 18
11
+ gc.rotate 15
12
+ gc.gravity Magick::CenterGravity
13
+ gc.text 0, 0, "RMagick"
14
+ gc.draw wm
15
+
16
+ # Read the background image.
17
+ img = Magick::Image.read("images/Flower_Hat.jpg").first
18
+
19
+ # Composite the tile image over the background image.
20
+ img.composite_tiled! wm
21
+ img.write "composite_tiled.jpg"
22
+
23
+
Binary file
Binary file
@@ -0,0 +1,11 @@
1
+ require 'RMagick'
2
+
3
+ img = Magick::Image.read("images/Flower_Hat.jpg").first
4
+ begin
5
+ img = img.level_colors("green", "orange", true)
6
+ img.alpha(Magick::DeactivateAlphaChannel)
7
+ rescue NotImplementedError
8
+ not_imp = Magick::Image.read('images/notimplemented.gif').first
9
+ img = not_imp.resize(img.columns, img.rows)
10
+ end
11
+ img.write("level_colors.jpg")
@@ -6,7 +6,7 @@
6
6
  <meta name="generator" content=
7
7
  "HTML Tidy for Linux/x86 (vers 1 September 2005), see www.w3.org" />
8
8
 
9
- <title>RMagick 2.5.2: class ImageList</title>
9
+ <title>RMagick 2.6.0: class ImageList</title>
10
10
  <meta http-equiv="Content-Type" content=
11
11
  "text/html; charset=us-ascii" />
12
12
  <meta name="GENERATOR" content="Quanta Plus" />
@@ -20,7 +20,7 @@
20
20
  </head>
21
21
 
22
22
  <body>
23
- <h6 id="header">RMagick 2.5.2 User's Guide and Reference</h6>
23
+ <h6 id="header">RMagick 2.6.0 User's Guide and Reference</h6>
24
24
 
25
25
  <div class="nav">
26
26
  &laquo;&nbsp;<a href="magick.html">Prev</a> | <a href=
@@ -62,6 +62,8 @@
62
62
 
63
63
  <li><a href="#spaceship">&lt;=&gt;</a></li>
64
64
 
65
+ <li><a href="#affinity">affinity</a></li>
66
+
65
67
  <li><a href="#animate">animate</a></li>
66
68
 
67
69
  <li><a href="#append">append</a></li>
@@ -75,13 +77,13 @@
75
77
  <li><a href="#composite_layers">composite_layers</a></li>
76
78
 
77
79
  <li><a href="#copy">copy</a></li>
78
-
79
- <li><a href="#cur_image">cur_image</a></li>
80
80
  </ul>
81
81
  </div>
82
82
 
83
83
  <div class="toccol">
84
84
  <ul>
85
+ <li><a href="#cur_image">cur_image</a></li>
86
+
85
87
  <li><a href="#deconstruct">deconstruct</a></li>
86
88
 
87
89
  <li><a href="#dup">dup</a></li>
@@ -99,13 +101,13 @@
99
101
  <li><a href="#map">map</a></li>
100
102
 
101
103
  <li><a href="#montage">montage</a></li>
102
-
103
- <li><a href="#morph">morph</a></li>
104
104
  </ul>
105
105
  </div>
106
106
 
107
107
  <div class="toccol">
108
108
  <ul>
109
+ <li><a href="#morph">morph</a></li>
110
+
109
111
  <li><a href="#mosaic">mosaic</a></li>
110
112
 
111
113
  <li><a href="#new_image">new_image</a></li>
@@ -438,6 +440,59 @@ example &lt;&lt; model.add_noise Magick::LaplacisanNoise
438
440
  <a href="image3.html#signature">signature</a></p>
439
441
  </div>
440
442
 
443
+ <div class="sig">
444
+ <h3 id="affinity">affinity</h3>
445
+
446
+ <p><span class="arg">ilist</span>.affinity(<span class=
447
+ "arg">affinity_image</span>=nil, <span class=
448
+ "arg">dither</span>=RiemersmaDitherMethod) -&gt;
449
+ <em>self</em></p>
450
+ </div>
451
+
452
+ <div class="desc">
453
+ <h4>Description</h4>
454
+
455
+ <p>Reduce the colors used in the imagelist to the set of colors
456
+ in <span id="arg">affinity_image</span>.</p>
457
+
458
+ <h4>Arguments</h4>
459
+
460
+ <dl>
461
+ <dt>affinity_image</dt>
462
+
463
+ <dd>The reference image</dd>
464
+
465
+ <dt>dither</dt>
466
+
467
+ <dd>A <a href="constants.html#DitherMethod">DitherMethod</a>
468
+ value. RiemersmaDitherMethod is the default. To disable
469
+ dithering specify NoDitherMethod.</dd>
470
+ </dl>
471
+
472
+ <h4>Returns</h4>
473
+
474
+ <p>self</p>
475
+
476
+ <h4>Example</h4>
477
+
478
+ <p>This example shows the effect of reducing the colors used in
479
+ the apple, beach scene, and leaf images to the set of colors
480
+ used in the yellow rose image.</p>
481
+
482
+ <p><a href=
483
+ "javascript:popup('affinity_images.rb.html')"><img alt=
484
+ "affinity_images example" src="ex/affinity_images.jpg" title=
485
+ "Click to see the example script" /></a></p>
486
+
487
+ <h4>See also</h4>
488
+
489
+ <p><a href="image1.html#affinity">Image#affinity</a></p>
490
+
491
+ <h4>Magick API</h4>
492
+
493
+ <p>AffinityImages (available in ImageMagick 6.4.3-6)</p>
494
+ </div>
495
+
441
496
  <div class="sig">
442
497
  <h3 id="animate">animate</h3>
443
498
 
@@ -502,10 +557,6 @@ ilist.animate { self.server_name = "other:0.0" }
502
557
 
503
558
  <p>A image composed of all the images in the imagelist.</p>
504
559
 
505
- <h4>Example</h4>
506
-
507
- <p>See the <a href="#map">map</a> example.</p>
508
-
509
560
  <h4>Magick API</h4>
510
561
 
511
562
  <p>AppendImages</p>
@@ -1078,19 +1129,10 @@ scene=1
1078
1129
 
1079
1130
  <p>A new imagelist the same length as the receiver.</p>
1080
1131
 
1081
- <h4>Example</h4>
1082
-
1083
- <p>This example demonstrates how to map images into the 216
1084
- "Web safe" colors. Mouse over the image to see the images
1085
- before mapping.</p>
1132
+ <h4>Notes</h4>
1086
1133
 
1087
- <p class="rollover"><a href=
1088
- "javascript:popup('map.rb.html')"><img src="ex/map_after.jpg"
1089
- alt="map example" title="Click to see the example script"
1090
- onmouseover="this.src='ex/map_before.jpg'" onmouseout=
1091
- "this.src='ex/map_after.jpg'" /></a><img src=
1092
- "ex/images/spin.gif" alt="" class="spin" style="left: 525px;"
1093
- title="Mouse over the example to see the original image" /></p>
1134
+ <p>This method is deprecated when using ImageMagick 6.4.3-6 and
1135
+ later. Use <a href="#affinity">affinity</a> instead.</p>
1094
1136
 
1095
1137
  <h4>See also</h4>
1096
1138
 
@@ -1702,8 +1744,8 @@ puts "The image has #{i.columns} columns and #{i.rows} rows." &raquo;
1702
1744
  <h3 id="quantize">quantize</h3>
1703
1745
 
1704
1746
  <p><span class="arg">ilist.</span>quantize(nc=256,
1705
- colorspace=<code>Magick::RGBColorspace</code>,
1706
- dither=<code>true</code>, tree_depth=0,
1747
+ colorspace=<code>RGBColorspace</code>,
1748
+ dither=<code>RiemersmaDitherMethod</code>, tree_depth=0,
1707
1749
  measure_error=<code>false</code>) -&gt; <em>imagelist</em></p>
1708
1750
  </div>
1709
1751
 
@@ -1738,11 +1780,10 @@ puts "The image has #{i.columns} columns and #{i.rows} rows." &raquo;
1738
1780
 
1739
1781
  <dt>dither</dt>
1740
1782
 
1741
- <dd class="imquote">Apply Floyd/Steinberg error diffusion to
1742
- the image. When the size of the color palette is less than
1743
- the image colors, this trades off spacial resolution for
1744
- color resolution by dithering to achieve a similar looking
1745
- image.</dd>
1783
+ <dd>A <a href="constants.html#DitherMethod">DitherMethod</a>
1784
+ value. See the documentation for the <a href=
1785
+ "http://redux.imagemagick.org/script/command-line-options.php#dither">
1786
+ ImageMagick -dither option</a> for more information.</dd>
1746
1787
 
1747
1788
  <dt>tree_depth</dt>
1748
1789
 
@@ -1954,7 +1995,8 @@ s = i.to_blob &raquo; a string representing the image.
1954
1995
  (<code>ps:</code>) to the filename. If the argument is an open
1955
1996
  file object, you can specify a format for each image in the
1956
1997
  list by setting its <a href="imageattrs.html#format">format</a>
1957
- attribute.</p>
1998
+ attribute. (See the Notes section for <a href=
1999
+ "image3.html#write">Image#write</a>.)</p>
1958
2000
 
1959
2001
  <p>You can also specify optional arguments by setting <a href=
1960
2002
  "info.html">Image::Info</a> attributes in an associated