rmagick 2.13.4 → 2.16.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 (281) hide show
  1. checksums.yaml +4 -4
  2. data/.editorconfig +14 -0
  3. data/.hound.yml +2 -0
  4. data/.rspec +1 -0
  5. data/.rubocop.yml +340 -0
  6. data/.simplecov +27 -0
  7. data/.travis.yml +29 -12
  8. data/CHANGELOG.md +915 -0
  9. data/CODE_OF_CONDUCT.md +13 -0
  10. data/CONTRIBUTING.md +31 -3
  11. data/Gemfile +3 -0
  12. data/README.textile +94 -4
  13. data/Rakefile +57 -45
  14. data/before_install_linux.sh +26 -6
  15. data/deprecated/RMagick.rb +6 -0
  16. data/doc/comtasks.html +1 -1
  17. data/doc/draw.html +7 -4
  18. data/doc/ex/InitialCoords.rb +16 -17
  19. data/doc/ex/NewCoordSys.rb +21 -23
  20. data/doc/ex/OrigCoordSys.rb +8 -10
  21. data/doc/ex/PreserveAspectRatio.rb +182 -183
  22. data/doc/ex/RotateScale.rb +27 -28
  23. data/doc/ex/Skew.rb +27 -27
  24. data/doc/ex/Use01.rb +7 -8
  25. data/doc/ex/Use02.rb +11 -12
  26. data/doc/ex/Use03.rb +7 -7
  27. data/doc/ex/ViewBox.rb +16 -18
  28. data/doc/ex/adaptive_threshold.rb +4 -5
  29. data/doc/ex/add_noise.rb +4 -5
  30. data/doc/ex/affine.rb +4 -4
  31. data/doc/ex/affine_transform.rb +4 -4
  32. data/doc/ex/arc.rb +10 -10
  33. data/doc/ex/arcpath.rb +7 -8
  34. data/doc/ex/arcs01.rb +10 -10
  35. data/doc/ex/arcs02.rb +36 -38
  36. data/doc/ex/average.rb +5 -5
  37. data/doc/ex/axes.rb +4 -4
  38. data/doc/ex/baseline_shift01.rb +11 -12
  39. data/doc/ex/bilevel_channel.rb +2 -3
  40. data/doc/ex/blur_image.rb +2 -2
  41. data/doc/ex/border.rb +2 -2
  42. data/doc/ex/bounding_box.rb +9 -11
  43. data/doc/ex/cbezier1.rb +3 -4
  44. data/doc/ex/cbezier2.rb +3 -4
  45. data/doc/ex/cbezier3.rb +3 -4
  46. data/doc/ex/cbezier4.rb +3 -4
  47. data/doc/ex/cbezier5.rb +2 -3
  48. data/doc/ex/cbezier6.rb +3 -3
  49. data/doc/ex/channel.rb +10 -11
  50. data/doc/ex/charcoal.rb +2 -2
  51. data/doc/ex/chop.rb +2 -2
  52. data/doc/ex/circle.rb +3 -3
  53. data/doc/ex/circle01.rb +6 -7
  54. data/doc/ex/clip_path.rb +12 -12
  55. data/doc/ex/coalesce.rb +32 -35
  56. data/doc/ex/color_fill_to_border.rb +6 -6
  57. data/doc/ex/color_floodfill.rb +2 -2
  58. data/doc/ex/color_histogram.rb +17 -18
  59. data/doc/ex/color_reset.rb +2 -2
  60. data/doc/ex/colorize.rb +2 -2
  61. data/doc/ex/colors.rb +30 -30
  62. data/doc/ex/compose_mask.rb +8 -9
  63. data/doc/ex/composite.rb +14 -16
  64. data/doc/ex/composite_layers.rb +15 -15
  65. data/doc/ex/composite_tiled.rb +5 -7
  66. data/doc/ex/contrast.rb +12 -12
  67. data/doc/ex/crop.rb +3 -3
  68. data/doc/ex/crop_with_gravity.rb +13 -17
  69. data/doc/ex/cubic01.rb +18 -20
  70. data/doc/ex/cubic02.rb +64 -67
  71. data/doc/ex/cycle_colormap.rb +2 -2
  72. data/doc/ex/dissolve.rb +2 -3
  73. data/doc/ex/drawcomp.rb +34 -34
  74. data/doc/ex/drop_shadow.rb +8 -8
  75. data/doc/ex/edge.rb +2 -2
  76. data/doc/ex/ellipse.rb +4 -4
  77. data/doc/ex/ellipse01.rb +10 -11
  78. data/doc/ex/emboss.rb +2 -2
  79. data/doc/ex/enhance.rb +2 -2
  80. data/doc/ex/equalize.rb +2 -2
  81. data/doc/ex/evenodd.rb +31 -32
  82. data/doc/ex/fill_pattern.rb +12 -15
  83. data/doc/ex/flatten_images.rb +13 -13
  84. data/doc/ex/flip.rb +2 -2
  85. data/doc/ex/flop.rb +2 -2
  86. data/doc/ex/font_styles.rb +21 -23
  87. data/doc/ex/fonts.rb +14 -14
  88. data/doc/ex/frame.rb +3 -3
  89. data/doc/ex/gaussian_blur.rb +2 -2
  90. data/doc/ex/get_multiline_type_metrics.rb +6 -7
  91. data/doc/ex/get_pixels.rb +13 -14
  92. data/doc/ex/get_type_metrics.rb +26 -31
  93. data/doc/ex/gradientfill.rb +12 -12
  94. data/doc/ex/grav.rb +4 -5
  95. data/doc/ex/gravity.rb +61 -60
  96. data/doc/ex/group.rb +16 -16
  97. data/doc/ex/hatchfill.rb +10 -10
  98. data/doc/ex/image.rb +29 -31
  99. data/doc/ex/implode.rb +17 -17
  100. data/doc/ex/level.rb +2 -2
  101. data/doc/ex/level_colors.rb +4 -4
  102. data/doc/ex/line.rb +4 -5
  103. data/doc/ex/line01.rb +11 -13
  104. data/doc/ex/mask.rb +7 -8
  105. data/doc/ex/matte_fill_to_border.rb +2 -3
  106. data/doc/ex/matte_floodfill.rb +2 -3
  107. data/doc/ex/matte_replace.rb +2 -3
  108. data/doc/ex/median_filter.rb +2 -2
  109. data/doc/ex/modulate.rb +2 -2
  110. data/doc/ex/mono.rb +4 -4
  111. data/doc/ex/morph.rb +7 -8
  112. data/doc/ex/mosaic.rb +15 -15
  113. data/doc/ex/motion_blur.rb +2 -2
  114. data/doc/ex/negate.rb +2 -2
  115. data/doc/ex/negate_channel.rb +2 -2
  116. data/doc/ex/nested_rvg.rb +11 -11
  117. data/doc/ex/nonzero.rb +31 -32
  118. data/doc/ex/normalize.rb +2 -2
  119. data/doc/ex/oil_paint.rb +2 -2
  120. data/doc/ex/opacity.rb +3 -3
  121. data/doc/ex/ordered_dither.rb +2 -2
  122. data/doc/ex/path.rb +4 -5
  123. data/doc/ex/pattern1.rb +10 -10
  124. data/doc/ex/pattern2.rb +7 -7
  125. data/doc/ex/polaroid.rb +13 -14
  126. data/doc/ex/polygon.rb +6 -7
  127. data/doc/ex/polygon01.rb +10 -12
  128. data/doc/ex/polyline.rb +4 -5
  129. data/doc/ex/polyline01.rb +11 -13
  130. data/doc/ex/posterize.rb +2 -2
  131. data/doc/ex/preview.rb +3 -4
  132. data/doc/ex/qbezierpath.rb +5 -5
  133. data/doc/ex/quad01.rb +23 -25
  134. data/doc/ex/quantize-m.rb +5 -5
  135. data/doc/ex/radial_blur.rb +2 -2
  136. data/doc/ex/raise.rb +2 -2
  137. data/doc/ex/random_threshold_channel.rb +2 -2
  138. data/doc/ex/rect01.rb +6 -7
  139. data/doc/ex/rect02.rb +9 -11
  140. data/doc/ex/rectangle.rb +3 -4
  141. data/doc/ex/reduce_noise.rb +2 -2
  142. data/doc/ex/remap.rb +7 -8
  143. data/doc/ex/remap_images.rb +9 -11
  144. data/doc/ex/resize_to_fill.rb +3 -5
  145. data/doc/ex/resize_to_fit.rb +3 -5
  146. data/doc/ex/roll.rb +2 -2
  147. data/doc/ex/rotate.rb +6 -7
  148. data/doc/ex/rotate_f.rb +2 -2
  149. data/doc/ex/roundrect.rb +4 -5
  150. data/doc/ex/rubyname.rb +11 -11
  151. data/doc/ex/rvg_clippath.rb +5 -7
  152. data/doc/ex/rvg_linecap.rb +25 -26
  153. data/doc/ex/rvg_linejoin.rb +25 -26
  154. data/doc/ex/rvg_opacity.rb +10 -11
  155. data/doc/ex/rvg_pattern.rb +15 -15
  156. data/doc/ex/rvg_stroke_dasharray.rb +6 -7
  157. data/doc/ex/segment.rb +2 -2
  158. data/doc/ex/sepiatone.rb +2 -3
  159. data/doc/ex/shade.rb +2 -2
  160. data/doc/ex/shadow.rb +2 -3
  161. data/doc/ex/shave.rb +2 -2
  162. data/doc/ex/shear.rb +3 -3
  163. data/doc/ex/sketch.rb +2 -3
  164. data/doc/ex/skewx.rb +4 -5
  165. data/doc/ex/skewy.rb +3 -3
  166. data/doc/ex/smile.rb +113 -113
  167. data/doc/ex/solarize.rb +2 -2
  168. data/doc/ex/sparse_color.rb +29 -30
  169. data/doc/ex/splice.rb +2 -3
  170. data/doc/ex/spread.rb +2 -2
  171. data/doc/ex/stegano.rb +34 -34
  172. data/doc/ex/stroke_dasharray.rb +4 -5
  173. data/doc/ex/stroke_fill.rb +4 -5
  174. data/doc/ex/stroke_linecap.rb +3 -3
  175. data/doc/ex/stroke_linejoin.rb +3 -3
  176. data/doc/ex/stroke_width.rb +3 -3
  177. data/doc/ex/swirl.rb +2 -2
  178. data/doc/ex/text.rb +4 -4
  179. data/doc/ex/text01.rb +7 -8
  180. data/doc/ex/text_align.rb +2 -2
  181. data/doc/ex/text_antialias.rb +9 -10
  182. data/doc/ex/text_styles.rb +11 -13
  183. data/doc/ex/text_undercolor.rb +2 -2
  184. data/doc/ex/texture_fill_to_border.rb +6 -6
  185. data/doc/ex/texture_floodfill.rb +2 -2
  186. data/doc/ex/texturefill.rb +10 -11
  187. data/doc/ex/threshold.rb +2 -2
  188. data/doc/ex/to_blob.rb +4 -5
  189. data/doc/ex/translate.rb +6 -6
  190. data/doc/ex/transparent.rb +5 -5
  191. data/doc/ex/transpose.rb +2 -2
  192. data/doc/ex/transverse.rb +2 -2
  193. data/doc/ex/tref01.rb +11 -12
  194. data/doc/ex/triangle01.rb +5 -6
  195. data/doc/ex/trim.rb +1 -2
  196. data/doc/ex/tspan01.rb +8 -9
  197. data/doc/ex/tspan02.rb +9 -11
  198. data/doc/ex/tspan03.rb +9 -11
  199. data/doc/ex/unsharp_mask.rb +2 -2
  200. data/doc/ex/viewex.rb +19 -21
  201. data/doc/ex/vignette.rb +2 -2
  202. data/doc/ex/watermark.rb +15 -16
  203. data/doc/ex/wave.rb +2 -2
  204. data/doc/ex/wet_floor.rb +17 -18
  205. data/doc/ex/writing_mode01.rb +8 -9
  206. data/doc/ex/writing_mode02.rb +8 -8
  207. data/doc/ilist.html +1 -1
  208. data/doc/usage.html +8 -8
  209. data/examples/constitute.rb +6 -6
  210. data/examples/crop_with_gravity.rb +13 -17
  211. data/examples/demo.rb +305 -305
  212. data/examples/describe.rb +27 -28
  213. data/examples/find_similar_region.rb +16 -16
  214. data/examples/histogram.rb +228 -232
  215. data/examples/identify.rb +165 -167
  216. data/examples/image_opacity.rb +4 -4
  217. data/examples/import_export.rb +10 -10
  218. data/examples/pattern_fill.rb +9 -9
  219. data/examples/rotating_text.rb +13 -14
  220. data/examples/spinner.rb +18 -19
  221. data/examples/thumbnail.rb +13 -14
  222. data/examples/vignette.rb +8 -9
  223. data/ext/RMagick/extconf.rb +489 -367
  224. data/ext/RMagick/rmagick.c +11 -4
  225. data/ext/RMagick/rmagick.h +4 -0
  226. data/ext/RMagick/rmdraw.c +49 -18
  227. data/ext/RMagick/rmenum.c +18 -7
  228. data/ext/RMagick/rmfill.c +4 -1
  229. data/ext/RMagick/rmilist.c +49 -13
  230. data/ext/RMagick/rmimage.c +196 -59
  231. data/ext/RMagick/rminfo.c +33 -10
  232. data/ext/RMagick/rmmain.c +18 -6
  233. data/ext/RMagick/rmmontage.c +12 -4
  234. data/ext/RMagick/rmpixel.c +18 -5
  235. data/ext/RMagick/rmstruct.c +108 -31
  236. data/ext/RMagick/rmutil.c +50 -26
  237. data/lib/rmagick/version.rb +4 -3
  238. data/lib/rmagick_internal.rb +1159 -1176
  239. data/lib/rvg/clippath.rb +36 -39
  240. data/lib/rvg/container.rb +115 -124
  241. data/lib/rvg/deep_equal.rb +46 -50
  242. data/lib/rvg/describable.rb +41 -47
  243. data/lib/rvg/embellishable.rb +384 -410
  244. data/lib/rvg/misc.rb +697 -714
  245. data/lib/rvg/paint.rb +42 -47
  246. data/lib/rvg/pathdata.rb +120 -125
  247. data/lib/rvg/rvg.rb +213 -213
  248. data/lib/rvg/stretchable.rb +159 -162
  249. data/lib/rvg/stylable.rb +109 -117
  250. data/lib/rvg/text.rb +9 -24
  251. data/lib/rvg/transformable.rb +120 -127
  252. data/lib/rvg/units.rb +58 -61
  253. data/rmagick.gemspec +46 -15
  254. data/spec/rmagick/ImageList1_spec.rb +24 -0
  255. data/spec/rmagick/draw_spec.rb +156 -0
  256. data/spec/rmagick/image/blue_shift_spec.rb +16 -0
  257. data/spec/rmagick/image/composite_spec.rb +140 -0
  258. data/spec/rmagick/image/constitute_spec.rb +15 -0
  259. data/spec/rmagick/image/dispatch_spec.rb +18 -0
  260. data/spec/rmagick/image/from_blob_spec.rb +14 -0
  261. data/spec/rmagick/image/ping_spec.rb +14 -0
  262. data/spec/rmagick/image/properties_spec.rb +29 -0
  263. data/spec/spec_helper.rb +4 -0
  264. data/test/Image1.rb +529 -727
  265. data/test/Image2.rb +1291 -1299
  266. data/test/Image3.rb +978 -981
  267. data/test/ImageList1.rb +7 -9
  268. data/test/ImageList2.rb +346 -350
  269. data/test/Image_attributes.rb +683 -686
  270. data/test/Import_Export.rb +25 -30
  271. data/test/Info.rb +339 -343
  272. data/test/Magick.rb +250 -253
  273. data/test/Pixel.rb +107 -110
  274. data/test/Preview.rb +48 -53
  275. data/test/test_all_basic.rb +15 -11
  276. data/test/tmpnam_test.rb +3 -3
  277. data/wercker.yml +10 -0
  278. metadata +77 -10
  279. data/ChangeLog +0 -816
  280. data/lib/RMagick.rb +0 -1
  281. data/test/Draw.rb +0 -121
data/CHANGELOG.md ADDED
@@ -0,0 +1,915 @@
1
+ # Change Log
2
+
3
+ All notable changes to this project are documented in this file.
4
+ This project adheres to [Semantic Versioning](http://semver.org/).
5
+
6
+ ## RMagick 2.16.0
7
+
8
+ - Support ImageMagick 6.9+ - @ZipoKing
9
+
10
+ ## RMagick 2.15.4
11
+
12
+ - Improved C extension building process - @u338steven
13
+
14
+ ## RMagick 2.15.3
15
+
16
+ - Fixed ImageMagick version detection on Windows - @maisumakun
17
+
18
+ ## RMagick 2.15.2
19
+
20
+ - GitHub repository moved back to github.com/rmagick/rmagick - @wurde, @vassilevsky
21
+
22
+ ## RMagick 2.15.1
23
+
24
+ - Fix loop in linked list in `ImageList` methods => they no longer hang - @u338steven
25
+
26
+ ## RMagick 2.15.0
27
+
28
+ - Ability to remove alpha channel - @ollie
29
+ - C local variables guarded against GC to avoid segfaults - @u338steven
30
+ - trace_proc protected with a mutex to avoid segfaults - @u338steven
31
+
32
+ ## RMagick 2.14.0
33
+
34
+ - `RMagick.rb` moved to deprecated directory - @mockdeep
35
+ - Better ImageMagick feature detection - @bf4
36
+ - Prevent compilation failures if prefix is an empty string - @voxik
37
+ - `SplineInterpolatePixel` preprocessor check removed - @joshk
38
+ - Make error format a string literal - @mtasaka
39
+ - Automatically set `ARCHFLAGS` on OS X - @u338steven
40
+ - Fixed `rmagick/version` require failure - @u338steven
41
+ - Fixed escaping of `%` in `Draw#get_type_metrics` - @mkluczny
42
+ - Silence warnings on Ruby 2.2 when comparing Enums - @meanphil
43
+ - Multiple test suite improvements - @mockdeep, @bf4
44
+ - Ruby source code formatting with RuboCop - @vassilevsky
45
+
46
+ ## RMagick 2.13.4
47
+
48
+ - Proof of concept for using `pkg-config` in place of `Magick-config` on debian based systems (#129) - @theschoolmaster
49
+ - Changed `Image#resample` to calling `ResampleImage` (#127, related #29, #45) - @u338steven
50
+ - Fixed #122: `lib/RMagick.rb` is overwritten by `lib/rmagick.rb` on case-insensitive systems (#124) - @u338steven
51
+ - New class `SolidFill` in order to fill image with monochromatic background (#123) - @prijutme4ty
52
+ - Quotes for correct path of font file (#121) - @markotom
53
+ - Allow `MagickCore6` from `Magick-config` (#120) - @chulkilee
54
+ - Fixed: build error with ImageMagick 6.8.9 (when deprecated functions are excluded) (#112) - @u338steven
55
+ - Fixed: related x_resolution, y_resolution (#102) - @u338steven
56
+ - Lots of test fixes - @u338steven
57
+ - Fix pixel hash test (#95) - @ioquatix
58
+ - Fixed: build error on Windows Ruby x64 (with ImageMagick 6.8.0-10 / ImageMagick 6.8.7-7) (#94) - @u338steven
59
+
60
+ ## RMagick 2.13.3
61
+
62
+ - Fix installation error on systems with HRDI enabled RMagick (#90) - @bricef
63
+
64
+ ## RMagick 2.13.2
65
+
66
+ - Fixed issues preventing RMagick from working with version 6.8 or higher
67
+ - Fixed issues preventing RMagick from working with ruby 1.9.3
68
+
69
+ ## RMagick 2.13.1
70
+
71
+ - Fixed bug preventing RMagick from working with version 6.5.9 or higher
72
+
73
+ ## RMagick 2.13.0
74
+
75
+ - Added Doxygen documentation, for automatic documentation
76
+ - Fixed bug #27467, get RMagick to compile witH ImageMagick 6.5.7
77
+ - Fixed bug #27607, switch `Pixel#from_hsla` and `Pixel#to_hsla` to use ranges
78
+ 0-255 instead of 0-100 for saturation and lightness (range used by
79
+ ImageMagick 6.5.6-5 and higher). Also added ability to specify all
80
+ arguments to these functions as percentages (bug report by Arthur Chan).
81
+
82
+
83
+ ## RMagick 2.12.2
84
+
85
+ - Add feature tests for `SinusoidFunction` and `PolynomialFunction` enum
86
+ values to allow compiling with ImageMagick 6.4.8-7 (bug report by Mark
87
+ Richman)
88
+
89
+ ## RMagick 2.12.1
90
+
91
+ - Fix bug #27239, allow 2.12.0 to compile with older releases of ImageMagick
92
+ (bug report by Sam Lown)
93
+
94
+ ## RMagick 2.12.0
95
+
96
+ - Added `Image#function_channel` (available in ImageMagick 6.4.8-8)
97
+ - Added `Image#auto_level_channel`, `Image#auto_gamma_channel` (available in
98
+ ImageMagick 6.5.5-1)
99
+ - Added `Draw#interline_spacing`, `#interline_spacing=` (available in
100
+ ImageMagick 6.5.5-8)
101
+
102
+ ## RMagick 2.11.1
103
+
104
+ - Applied Alexey Borzenkov's mingw patches to `extconf.rb`.
105
+ - Fixed a bug in `Magick.trace_proc` that could cause a segv at program exit
106
+ with Ruby 1.9.1 (bug report by Larry Young)
107
+ - Added new `CompressionType` enum values `ZipSCompression`, `PixCompression`,
108
+ `Pxr24Compression`, `B44Compression`, `B44ACompression` (available in
109
+ ImageMagick 6.5.5-4)
110
+
111
+ ## RMagick 2.11.0
112
+
113
+ - Fix bug #26475, dissolve and watermark don't work with new versions of
114
+ ImageMagick (reported by Jim Crate)
115
+ - Add `Image#composite_mathematics` (available in ImageMagick 6.5.4-3)
116
+ - Add new `LinearDodgeCompositeOp`, `LinearBurnCompositeOp`,
117
+ `PegtopCompositeOp`, `PinLightCompositeOp`, `VividLightCompositeOp` enum values
118
+ (available in ImageMagick 6.5.4-3)
119
+
120
+ ## RMagick 2.10.0
121
+
122
+ - ImageMagick releases earlier than 6.3.5-10 and Ruby releases earlier
123
+ than 1.8.5 no longer supported.
124
+ - (Experimental) Support the use of Ruby managed memory for all memory
125
+ allocations (available in ImageMagick 6.5.3-10)
126
+ - Add `Image#selective_blur_channel` (available in ImageMagick 6.5.0-3)
127
+ - Add new `AlphaBackgroundChannel` enum value (available in ImageMagick
128
+ 6.5.2-5)
129
+ - Add new `DistortCompositeOp` enum value (available in ImageMagick 6.5.3-7)
130
+
131
+ ## RMagick 2.9.2
132
+
133
+ - Add new `HorizontalTileEdgeVirtualPixelMethod`,
134
+ `VerticalTileEdgeVirtualPixelMethod`, `CheckerTileVirtualPixelMethod`
135
+ `VirtualPixelMethod` enum values (available in ImageMagick 6.5.0-1)
136
+ - Added `BilinearForwardDistortion`, `BilinearReverseDistortion` enums
137
+ (available in ImageMagick 6.5.1-2)
138
+ - Add missing composite operators to `Magick::Draw#composite` method
139
+ - Add warning about dropping support for ImageMagick < 6.3.5 and
140
+ Ruby < 1.8.5
141
+ - Fix bug #25892, stack buffer overflow in `Magick::TypeMetric.to_s`
142
+ (reported by Roman Simecek)
143
+
144
+ ## RMagick 2.9.1
145
+
146
+ - Fix a bug that prevents the use of transparent background colors when
147
+ built with ImageMagick 6.4.9-0
148
+
149
+ ## RMagick 2.9.0
150
+
151
+ - Fix #23209, improve RVG's letter spacing (patch from Jonah Fox)
152
+ - Add `Draw#kerning=` attribute (available in ImageMagick 6.4.7-8)
153
+ - Add `Draw#interword_spacing=` attribute (available in ImageMagick
154
+ 6.4.8-0)
155
+ - Add `Draw#kerning`, `Draw#interword_spacing` primitive methods (available in
156
+ ImageMagick 6.4.8-3)
157
+ - Feature #23171, support `ImageList`, `Draw`, `Pixel` marshaling.
158
+ - Support all the new `EvaluateOperator` constants
159
+
160
+ ## RMagick 2.8.0
161
+
162
+ - Add the `endian`, `scene`, and `transparent_color` attributes to `Image::Info`
163
+ - Deprecate `Image#endian=` attribute setter
164
+ - Add the `transparent_chroma` method to the `Image` class (available in
165
+ ImageMagick 6.4.5-6)
166
+ - Add the `sparse_color` method to the `Image` class (available in ImageMagick
167
+ 6.4.3)
168
+ - Update `Image#change_geometry` to work with the new `ParseSizeGeometry` API
169
+ in ImageMagick 6.4.6-9.
170
+
171
+ ## RMagick 2.7.2
172
+
173
+ - Fix bug #22740, some `Image::Info` attribute values are not propogated to
174
+ the image object (bug report by Thomas Watson)
175
+
176
+ ## RMagick 2.7.1
177
+
178
+ - Fix bug #22471, `Magick::fonts` can abend on 64-bit systems (bug report and
179
+ patch by James Le Cuirot)
180
+ - `ImageList.new` accepts a block which is passed on to `Image::read` when
181
+ reading the input images. The block is executed in the context of an
182
+ `Image::Info` object.
183
+ - Add support for the "user" image property.
184
+ - Define the `Magick::FatalImageMagickError` exception class, raised if
185
+ ImageMagick raises a fatal (unrecoverable) exception.
186
+ - Added feature #22618, `Image#total_ink_density` (request by F. Behrens)
187
+
188
+ ## RMagick 2.7.0
189
+
190
+ - Fix bug #22152, `extconf.rb` does not respect the `LDFLAGS` environment
191
+ variable (bug report by Joseph Sokol-Margolis)
192
+ - Fix bug #22190, the `NoDitherMethod` enum value is not defined in
193
+ ImageMagick 6.4.2
194
+ - Add the `TrimBoundsLayer` `ImageLayerMethod` enum value (available in
195
+ ImageMagick 6.4.3-8)
196
+ - Add the `CopyAlphaChannel`, `ExtractAlphaChannel`, `OpaqueAlphaChannel`,
197
+ `ShapeAlphaChannel`, and `TransparentAlphaChannel` `AlphaChannelType` enum
198
+ values (available in ImageMagick 6.4.3-7)
199
+ - Rename `Image#affinity` and `ImageList#affinity` to `Image#remap` and
200
+ `ImageList#remap`. Retain the old names as aliases. (Changed in ImageMagick
201
+ 6.4.4-0)
202
+
203
+ ## RMagick 2.6.0
204
+
205
+ - Fix bug #21237, `Image::write` ignores format attribute when called with a
206
+ `Tempfile` pathname (bug report by Jack Shedd)
207
+ - Fix bug #21897, `ImageList#from_blob` abends when certain corrupt JPEG
208
+ images are used (bug report by Peter Szabo)
209
+ - Add `Image#composite_tiled`, `Image#composite_tiled!` (ref:
210
+ http://rubyforge.org/forum/forum.php?thread_id=27347&forum_id=33)
211
+ - Add `Image#deskew` (available with ImageMagick 6.4.2-5)
212
+ - Add `Image#define`, `Image#undefine` (available in ImageMagick 6.3.6)
213
+ - Add `Image#level_colors` (available in ImageMagick 6.4.2-1)
214
+ - Add `Image#levelize_channel` (available in ImageMagick 6.4.2-1)
215
+ - Add `Image#affinity`, `ImageList#affinity` (available in ImageMagick 6.4.3-6).
216
+ These methods replace `Image#map` and `ImageList#map`.
217
+ - Accept `DitherMethod` values for the `dither` argument to `Image#quantize`,
218
+ `ImageList#quantize`
219
+ - Add the `BarrelDistortion`, `PolynomialDistortion`, `ShepardsDistortion`,
220
+ `PolarDistortion`, and `DePolarDistortion` `MagickDistortion` Method enum values
221
+ (available in ImageMagick 6.4.2-6)
222
+ - Add the `HorizontalTileVirtualPixelMethod` and
223
+ `VerticalTileVirtualPixelMethod` `VirtualPixelMethod` enum values
224
+ (available in ImageMagick 6.4.2-6)
225
+ - Add `DitherMethod` enum class
226
+ - Added general-purpose `OptionalMethodArguments` class to handle ad-hoc
227
+ optional arguments.
228
+ - Support optional "distort:viewport" and "distort:scale" arguments to
229
+ `Image#distort`
230
+ - Support optional `highlight_color` and `lowlight_color` arguments
231
+ to `Image#compare_channel`
232
+
233
+ ## RMagick 2.5.2
234
+
235
+ - Add support for `MergeLayer` to `Magick::ImageList#optimize_layers` (patch
236
+ #21189, submitted by Andrew Watson)
237
+ - Add `PowQuantumOperator` argument for `Image#quantum_operator` (available
238
+ in ImageMagick 6.4.1-9)
239
+
240
+ ## RMagick 2.5.1
241
+
242
+ - Update `Pixel#to_color` to work with the new `QueryMagickColorname` API in
243
+ ImageMagick 6.4.1-9.
244
+
245
+ ## RMagick 2.5.0
246
+
247
+ - Added `Image#add_compose_mask`, `#delete_compose_mask` (feature #20531)
248
+
249
+ ## RMagick 2.4.0
250
+
251
+ - Added `Image#image_type=` (feature #20490)
252
+
253
+ ## RMagick 2.3.0
254
+
255
+ - Added `Image#encipher`, `Image#decipher` (available with ImageMagick 6.3.8-6)
256
+ - Added `DXT1Compression`, `DXT3Compression`, and `DXT5Compression`
257
+ `CompressionType` enums (available in ImageMagick 6.3.9-4)
258
+ - Added optional "use hex format" argument to `Pixel#to_color`
259
+ - Support `:area` resource type in `Magick.limit_resource`
260
+ - `Pixel.from_HSL` and `Pixel#to_HSL` are deprecated. Use `Pixel.from_hsla`
261
+ and `Pixel#to_hsla` instead. The new methods rely on the ImageMagick 6.3.5
262
+ and later API.
263
+ - The `Image#alpha` and `alpha=` attributes are deprecated. Use `alpha()` and
264
+ `alpha?` instead.
265
+ - The `Image#mask=` attribute is deprecated. Use `mask()` instead.
266
+ - The use of Ruby older than version 1.8.4 with RMagick is deprecated and
267
+ will not be supported in a future release.
268
+ - Fix bug #18271, rvg width and height attributes wrong after a call to
269
+ viewbox (reported by Greg Jarman)
270
+
271
+ ## RMagick 2.2.2
272
+
273
+ - Fix bug #18016, add test for `InitializeMagick` in `libMagickCore` to
274
+ `extconf.rb`
275
+
276
+ ## RMagick 2.2.0
277
+
278
+ - Added `Image#opaque_channel`, `Image#paint_transparent` (available with
279
+ ImageMagick 6.3.7-10)
280
+ - Added `Image#liquid_rescale` (available with ImageMagick 6.3.8-2)
281
+ - Added `CMYColorspace` `ColorspaceType` value
282
+ - Fixed bug #17148, compiler error message on Solaris (bug report by Trever
283
+ Wennblom)
284
+ - Fixed bug #17470, `get_exif_by_number`, `get_exif_by_entry` may fail when
285
+ called with one or more arguments
286
+
287
+ ## RMagick 2.1.0
288
+
289
+ - Added `Image::Info#caption=` attribute
290
+ - Rename `Image#crop_resized`, `#crop_resized!` to `#resize_to_fill`,
291
+ `#resize_to_fill!`. Add aliases for the old names.
292
+ - Fix bug #16776, in the `axes.rb` example the last 2 arguments to
293
+ `border.rectangle` are swapped (bug report by Alain Feler)
294
+ - Fix bug #16931, apostrophe in #error directive causes error in some
295
+ versions of GCC (bug report by Justin Dossey)
296
+
297
+ ## RMagick 2.0.0
298
+
299
+ - Replaced `configure`/`make`/`make install` with standard Ruby `setup.rb`,
300
+ `extconf.rb`
301
+ - Removed support for Ruby earlier than 1.8.2
302
+ - Removed support for GraphicsMagick. As a result these methods are no
303
+ longer available: `Image#grayscale_pseudo_class`, `Image#statistics`.
304
+ - Removed support for all releases of ImageMagick earlier than 6.3.0.
305
+ - Removed deprecated `Image#random_channel_threshold`. Use
306
+ `Image#random_threshold_channel` instead
307
+ - Removed deprecated `Image#channel_threshold`. Use
308
+ `Image#random_threshold_channel` instead
309
+ - Removed unecessary `Image#montage=`
310
+ - Removed unecessary and undocumented `Image#image_type=`
311
+ - Removed deprecated `Image::Info#tile_info`, `tile_info=` attributes.
312
+ - Removed deprecated `Image::Info#tile`, `tile=` attributes. Use `#extract`,
313
+ `#extract=` instead
314
+ - Removed deprecated `Image::Info#subimage`, `subimage=` attributes. Use
315
+ `scene`, `scene=` instead
316
+ - Removed deprecated `Image::Info#subrange`, `subrange=` attributes. Use
317
+ `number_scenes`, `number_scenes=` instead
318
+ - Removed deprecated `Magick.set_monitor`. Use `Image#set_monitor`,
319
+ `Image::Info#set_monitor` instead
320
+ - Removed deprecated `RunlengthEncodedCompression` `CompressionType`. Use
321
+ `RLECompression` instead
322
+ - Deprecated `Image#matte`, `matte=` with ImageMagick 6.3.5 and later
323
+ - Added `Image::Info#stroke=`, `stroke_width=` and `undercolor=` attributes
324
+ - Added `Image::Info#tile_offset=` attribute
325
+ - Added `Draw#fill_pattern=` and `#stroke_pattern=` annotate attributes
326
+ - Changed `Image::Info[]` and `Image::Info[]=` to allow an omitted "format"
327
+ argument
328
+ - Added `Image#destroy!`, `destroyed?`, `check_destroyed` methods
329
+ - Support `Image` object creation/destruction tracing with the
330
+ `Magick.trace_proc` attribute
331
+ - Added `Magick::QuantumRange`. `Magick::MaxRGB` is deprecated.
332
+ - Added `OptimizeTransLayer`, `RemoveDupsLayer`, `RemoveZeroLayer`,
333
+ `OptimizeImageLayer` `ImageLayerMethods` enum values (available with
334
+ ImageMagick 6.3.3),
335
+ `MosaicLayer`, `FlattenLayer` (available with ImageMagick 6.3.6)
336
+ - RMagick works with Q32 version of ImageMagick
337
+ - Added `ChangeMaskCompositeOp`, `DivideCompositeOp`, `LinearLightCompositeOp`
338
+ `CompositeOperator` enum values
339
+ - Added `SplineInterpolatePixel` `InterpolatePixelMethod` enum value
340
+ - Added `DitherVirtualPixelMethod`, `RandomVirtualPixelMethod`,
341
+ `BlackVirtualPixelMethod`, `GrayVirtualPixelMethod`, `WhiteVirtualPixelMethod`
342
+ (available with ImageMagick 6.3.5), and `MaskVirtualPixelMethod` (available
343
+ with ImageMagick 6.3.3) `VirtualPixelMethod` enum values
344
+ - Added `GIFInterlace`, `JPEGInterlace`, `PNGInterlace` `Interlace` type enum
345
+ values (available with ImageMagick 6.3.4)
346
+ - Added `SentinelFilter` `FilterTypes` enum value (available in ImageMagick
347
+ 6.3.6)
348
+ - Added `Image.combine`
349
+ - Added `Image#separate` (available with ImageMagick 6.3.2)
350
+ - Added `Image#distort` (available with ImageMagick 6.3.5)
351
+ - Added `Image#each_pixel` (thanks to Russell Norris for the suggestion and
352
+ code)
353
+ - Added `Image#histogram?` (available with ImageMagick 6.3.5)
354
+ - Added `Image#sync_profiles` (available with ImageMagick 6.3.2)
355
+ - Added `Image#extent` (available with ImageMagick 6.3.1)
356
+ - Added `Image#excerpt`, `Image#excerpt!` (available with ImageMagick 6.3.5)
357
+ - Added `Image::Info#attenuate`
358
+ - Added `Image#clut_channel` (available with ImageMagick 6.3.5)
359
+ - Feature Request #16264, added `ImageList#composite_layers` (available with
360
+ ImageMagick 6.3.3, request from Steve Martocci)
361
+ - Added `Image#alpha=` (available with ImageMagick 6.3.5)
362
+ - Added `Image#gravity=`
363
+ - Added `Image#equalize_channel` (available with ImageMagick 6.3.6)
364
+ - Added new `FilterTypes` values `KaiserFilter`, `WelshFilter`, `ParzenFilter`,
365
+ `LagrangeFilter`, `BohmanFilter`, `BartlettFilter` (available with ImageMagick
366
+ 6.3.6)
367
+ - Fix bug #10339, `Image#trim` does not support "reset page information
368
+ option" (bug report from Nobody)
369
+ - Renamed `RMagick.so` to `RMagick2.so` to prevent confusion between `RMagick.rb`
370
+ and `RMagick.so`
371
+ - Feature Request #16276, re-organize doc to not split `Image` method pages
372
+ in the middle of an initial letter (request from Roy Leban)
373
+ - Updated for ImageMagick 6.3.7-5
374
+ - Made changes as necessary to work with current Ruby 1.9.0
375
+
376
+ ## RMagick 1.15.12
377
+
378
+ - Fix bug #16221, starting with ImageMagick 6.3.2, get_exif_by_entry/number
379
+ returns empty array/hash when no arguments are specified, even though the
380
+ image has EXIF data (bug report from Paul Clegg)
381
+
382
+ ## RMagick 1.15.11
383
+
384
+ - Fix bug #15887, the x_ and y_resolution attributes don't respect the units
385
+ attribute (bug report from Ben Greenburg)
386
+ - Fix bug #15889, memory leak in Draw#composite method (bug report from Till
387
+ Vollmer)
388
+
389
+ ## RMagick 1.15.10
390
+
391
+ - Update Magick::Pixel.from_HSL, #to_HSL to work with new APIs in
392
+ ImageMagick 6.3.5-9.
393
+
394
+ ## RMagick 1.15.9
395
+
396
+ - Fixed bug #12089 (bug report from Hans de Graaff)
397
+
398
+ ## RMagick 1.15.8
399
+
400
+ - Fixed bug #12671, incorrect link in HTML doc (bug report from Thomas R.
401
+ Koll
402
+ - Fixed bug #11890, incorrect usage description for Draw#text_undercolor in
403
+ HTML doc (bug report from Ezra Freedman)
404
+ - Fixed bug #12706, specifying both a gravity and offsets to Image#composite
405
+ positions the composite image incorrectly (bug report from Benoit Larroque)
406
+
407
+ ## RMagick 1.15.7
408
+
409
+ - Fix bug #11033, make distclean misses some files (bug report from Lucas
410
+ Nussbaum)
411
+ - Work around SetMagickRegistry problem in ImageMagick 6.3.4-7
412
+
413
+ ## RMagick 1.15.6
414
+
415
+ - Fix bug #10070, memory leak in Draw#get_type_metrics,
416
+ Draw#get_multiline_type_metrics, Draw#annotate (bug report from Sinclair
417
+ Bain)
418
+ - Fix bug #10080, scripts in examples directory should not be marked
419
+ executable (bug report from Lucas Nussbaum)
420
+
421
+ ## RMagick 1.15.5
422
+
423
+ - Fix bug #9637, export_pixels always exports all 0's for 1-bit images (bug
424
+ report from Doug Patterson)
425
+
426
+ ## RMagick 1.15.4
427
+
428
+ - Fix bug #8927, RMagick and rbgsl both export the name ID_call (bug report
429
+ from Shin Enomoto)
430
+
431
+ ## RMagick 1.15.3
432
+
433
+ - Fix bug #8697, Image::Info.fill= doesn't work when creating "caption:"
434
+ format images (bug report from choonkeat)
435
+
436
+ ## RMagick 1.15.2
437
+
438
+ - Fix bug #8408, a compatibility problem with some versions of ImageMagick
439
+ before 6.2.5 (bug report from Geir Gluckstad)
440
+
441
+ ## RMagick 1.15.1
442
+
443
+ - Fix bug #8307, compatibility problems with older (6.0.x) versions of
444
+ ImageMagick (bug report from Chris Taggart)
445
+
446
+ ## RMagick 1.15.0
447
+
448
+ - Added fx method to ImageList class
449
+ - Added wet_floor method to the Image class
450
+ - Added linear_stretch method to the Image class (available with
451
+ ImageMagick 6.3.1-1)
452
+ - Added recolor method to the Image class (available with ImageMagick 6.3.1-3)
453
+ - Added polaroid method to the Image class (available with ImageMagick 6.3.1-6)
454
+ - Added origin attribute to the Image::Info class (supported by
455
+ ImageMagick 6.3.1-4 and later)
456
+ - Added PaletteBilevelMatteType to the ImageType enum
457
+ - Fix bug #6260, some RVG examples produce all-black GIF images
458
+ - Fix bug #7034, fix the matte method in the Draw class
459
+ - Fix bug #7373, default channels should be RGB instead of RGBA
460
+ - Fix bug #7716, Pixel#intensity wrong for gray images (bug report from
461
+ Morio Miki)
462
+ - Fix bug #7949, Magick::Draw.new abends when an exception occurs before
463
+ the draw object is fully initialized (bug report from Andrew Kaspick)
464
+ - Fix bug #8015, Magick::Draw.new doesn't call the optional arguments block
465
+ in the right scope (bug report from Andrew Kaspick)
466
+ - Tested with ImageMagick 6.3.2-0
467
+
468
+ ## RMagick 1.14.1
469
+
470
+ - Handle change to the type of the ColorInfo.color field introduced by
471
+ ImageMagick 6.3.0
472
+
473
+ ## RMagick 1.14.0
474
+
475
+ - Feature request #5015, support CMYK->RGB conversions. Added the
476
+ add_profile and delete_profiles to the Image class. Fixed the profile!,
477
+ iptc_profile, and color_profile methods. Added the
478
+ black_point_compensation attribute. (requested by Niklas Ekman)
479
+ - Added adaptive_blur, adaptive_blur_channel, find_similar_region, sketch
480
+ methods to the Image class (available with ImageMagick 6.2.8-6)
481
+ - Added adaptive_resize to the Image class (available with
482
+ ImageMagick 6.2.9)
483
+ - Added resample method to the Image class (thanks to Ant Peacocke for the
484
+ idea)
485
+ - Added four new compositing methods to the Image class: blend, displace,
486
+ dissolve, and watermark
487
+ - Feature request #5418, add get_iptc_dataset and each_iptc_dataset to the
488
+ Image class (requested by Oliver Andrich)
489
+ - Added the bias and mask attributes to the Image class
490
+ - Added optional qualifier argument to Image#rotate
491
+ - Patch #5742 from Douglas Sellers, adds channel method to the Image::Info
492
+ class.
493
+ - Added new ChannelType enum values
494
+ - Added texture= attribute writer to the Image::Info class
495
+ - Added tile= attribute writer to the Draw class
496
+ - Added pixel_interpolation_method attribute, InterpolatePixelMethod enum
497
+ class to the Image class (available with ImageMagick 6.2.9)
498
+ - Added "Magick Command Options and Their Equivalent Methods" page to the
499
+ documentation
500
+ - Fix bug #5079, Image#quantum_operator method doesn't work (bug report
501
+ from Pedro Martins)
502
+ - Fix bug #5080, incorrect RVG images when non-0 values used for the min_x
503
+ or min_y arguments to RVG#viewbox (bug report from Daniel Harple)
504
+ - Fix bug #5370, the clip_mask= attribute doesn't work
505
+ - Fix bug #5506, wrong argument used to intialize AffineMatrix (bug
506
+ report from Michael Shantzis)
507
+
508
+ ## RMagick 1.13.0
509
+
510
+ - Added transform, transform!, transpose, transpose! methods to Image class
511
+ (available with ImageMagick 6.2.8)
512
+ - Feature #4844, add auto_orient, auto_orient! methods to Image class
513
+ (suggestion from John Oordopjes, available with ImageMagick 6.2.8)
514
+ - Added adaptive_sharpen, adaptive_sharpen_channel methods to Image class
515
+ (available with ImageMagick 6.2.7)
516
+ - Added composite_image_channel, composite_image_channel! methods to Image
517
+ class (added in ImageMagick 6.2.6)
518
+ - Added radial_blur_channel method to Image class (available in
519
+ ImageMagick 6.2.4)
520
+ - Fix bug #4806, add hash, eql? methods to Pixel class (bug report from
521
+ Tim Pease)
522
+ - Change extension filename to match RubyGems 0.9.0 expectations.
523
+ - Fix bug #4821, correct doc for Image#rotate (bug report from Tim Pease)
524
+ - Update the Draw#annotate documentation
525
+
526
+ ## RMagick 1.12.0
527
+
528
+ - Fix bug #4630, the new signature for #level is incompatible with
529
+ releases prior to 1.10.1 (bug report from Al Evans)
530
+
531
+ ## RMagick 1.11.1
532
+
533
+ - Fix bug #4511, add Makefile, rmagick_config.h as dependencies
534
+ in the Makefile (bug report from Eric Hodel)
535
+ - Ensure ExceptionInfo structures are freed
536
+
537
+ ## RMagick 1.11.0
538
+
539
+ - Feature #3705, add resize_to_fit (thanks to Robert Manni for the code)
540
+ - Added optimize_layers method to the ImageList class (available with
541
+ ImageMagick 6.2.6)
542
+ - Added limit_resource method to the Magick module
543
+ - Replaced install.rb with setup.rb, improved gem install
544
+ (bug report from Ryan Davis)
545
+ - Added --disable-htmldoc option to setup.rb
546
+ - Fix bug #4104, incorrect label on example (reported by Jason Lee)
547
+ - Added contrast_stretch_channel to the Image class (available with
548
+ ImageMagick 6.2.6)
549
+ - Improved Magick exception handling to eliminate memory leaks when an exception
550
+ is rescued and execution continues.
551
+ - Tested with ImageMagick 6.2.7
552
+
553
+ ## RMagick 1.10.1
554
+
555
+ - Fix bug #3437, memory leak in ImageList#to_blob
556
+ - Fix bug #3363, Image#composite doesn't work when the source image
557
+ is bigger than the destination
558
+ - Fix bug #3635, Image#import_pixels doesn't accept FloatPixel or DoublePixel
559
+ storage types
560
+ - Feature #3597, add border_color attribute to the Draw class
561
+
562
+ ## RMagick 1.10.0
563
+
564
+ - Added add_noise_channel method to Image class (available with ImageMagick 6.2.5)
565
+ - Added vignette method to the Image class (available with ImageMagick 6.2.6)
566
+ - Added crop_resize method to the Image class (thanks to Jerret Taylor for
567
+ the suggestion and original code)
568
+ - Added export_pixels_to_str method to the Image class
569
+ - Provided default arguments to Image#export_pixels
570
+ - Added "order" option to Image#ordered_dither
571
+ - Added cyan, magenta, yellow, and black attribute accessors to the Pixel class
572
+ - Added CineonLogRGBColorspace, LABColorspace, Rec601LumaColorspace,
573
+ Rec601YCbCrColorspace, Rec709LumaColorspace, Rec709YCbCrColorspace,
574
+ LogColorspace enumerators to the ColorspaceType enumeration class.
575
+ - Fixed bug #2844, Image#to_blob exits if the image is a 0x0 JPEG
576
+ - Fixed bug #2688, Image#annotate, Draw#get_multiline_type_metrics handle
577
+ newline characters properly
578
+ - Tested with ImageMagick 6.2.6
579
+ - Removed support for all versions of ImageMagick prior to 6.0.0
580
+
581
+ ## RMagick 1.9.3
582
+
583
+ - Feature #2521, add Image#distortion_channel method
584
+ - Fixed bug #2546, ImageList#to_blob builds multi-image blobs again. (ImageMagick 6.2.0
585
+ silently broke the ImageToBlob method.) Thanks to Tom Werner for reporting this bug.
586
+ - Test with GraphicsMagick 1.1.7
587
+
588
+ ## RMagick 1.9.2
589
+
590
+ - Feature #2412, add the virtual_pixel_method attribute and the VirtualPixelMethod
591
+ enumeration
592
+ - Feature #2462, add the ticks_per_second attribute
593
+
594
+ ## RMagick 1.9.1
595
+
596
+ - Fixed bug #2157, Image#total_colors is now an alias of Image#number_colors
597
+ - Fixed bug #2155, Image#dispose= now accepts a DisposeType enum, #dispose
598
+ now returns a DisposeType enum.
599
+ - Fixed bug #2156, Image#properties no longer returns garbage for the property
600
+ name and value.
601
+ - Fixed bug #2190, Image#compose now returns a CompositeOperator
602
+ - Fixed bug #2191, Image#composite no longer abends when called with 0 arguments
603
+ - Fixed bug #2213, ImageList#montage method no longer leaves the imagelist corrupt
604
+ after raising an ImageMagickError
605
+ - Feature #2159, added GrayChannel ChannelType enum value, BlendCompositeOp and
606
+ ColorBurnCompositeOp CompositeOperator enum values, RLECompression CompressionType
607
+ enum value, deprecate RunlengthCompression
608
+ - Feature #2172, added optional argument to crop and crop! to reset the saved
609
+ page offsets after cropping
610
+ - Deprecated Image#channel_threshold. This method is deprecated in ImageMagick.
611
+ - Feature #2373, change Image#import_pixels to accept a pixel data buffer as well
612
+ as a pixel data array. (Thanks to Ara T. Howard for this suggestion!)
613
+ - Fixed to compile without errors with ImageMagick 6.2.4-4.
614
+
615
+ ## RMagick 1.9.0
616
+
617
+ - Added Image#monitor=, Image::Info#monitor=. Deprecated Magick.set_monitor.
618
+ - Fixed bug #2070, support color names with embedded spaces
619
+ - Fixed bug #2109, properly scope Magick constants in RVG
620
+
621
+ ## RMagick 1.8.3
622
+
623
+ - Tested with ImageMagick 6.2.3-2
624
+ - Added comment, delay, dispose, fill, gravity, and label attributes to
625
+ Image::Info
626
+
627
+ ## RMagick 1.8.2
628
+
629
+ - Fix bug #1983, potential buffer overflow in version_constants
630
+ - Added feature #2015, support the pointsize, authenticate,
631
+ and sampling_factor attributes in Image::Info
632
+
633
+ ## RMagick 1.8.1
634
+
635
+ - Fix bugs #1876, #1888, #1919
636
+ - Added feature #1941, RVG's polyline, polygon accept array arguments
637
+ - Numerous fixes to the RVG documentation
638
+
639
+ ## RMagick 1.8.0
640
+
641
+ - Added Image#shadow (ImageMagick 6.1.7)
642
+ - Added Image::Info#undefine, #[], #[]=
643
+ - Added sigmoidal_contrast_channel, sepiatone to Image class (ImageMagick 6.2.1)
644
+ - Added JPEG2000Compression constant (ImageMagick 6.2.2)
645
+ - Incorporated RVG classes
646
+ - Added RVG documentation, examples, updated installer
647
+ - Tested with ImageMagick 6.2.2-0, latest GraphicsMagick 1.2
648
+
649
+ ## RMagick 1.7.4
650
+
651
+ - Fix bug #1727
652
+ - Fix affine_transform.rb
653
+ - Tested with ImageMagick 6.2.1
654
+
655
+ ## RMagick 1.7.3
656
+
657
+ - Fix bug #1553, a build issue with ImageMagick 6.0.x
658
+
659
+ ## RMagick 1.7.2
660
+
661
+ - Fix bugs #1308, #1310, #1314, #1533
662
+
663
+ ## RMagick 1.7.1
664
+
665
+ - Fix bugs #1250, #1253
666
+ - Tested with ImageMagick 6.1.7, Ruby 1.8.2
667
+
668
+ ## RMagick 1.7.0
669
+
670
+ - Added splice, set_channel_depth to Image class (ImageMagick 6.0.0)
671
+ - Added sharpen_channel, blur_channel to Image class (ImageMagick 6.0.1)
672
+ - Added get_multiline_type_metrics to Draw class (ImageMagick 6.1.5),
673
+ added new example scripts and images
674
+ - Added normalize_channel, unsharp_mask_channel to Image class
675
+ (ImageMagick 6.1.0)
676
+ - Added read_inline to Image class
677
+ - Renamed channel_compare to compare_channel, retained old name as an alias
678
+ for backward compatibility.
679
+ - Added default values for unsharp_mask arguments
680
+ - Fixed bug #1193
681
+ - Fixed segfault in destroy_Draw when Ruby gc'd the temp file name
682
+ array before calling destroy_Draw
683
+ - Tested with ImageMagick 6.1.6, GraphicsMagick 1.1.4, Ruby 1.8.2preview3.
684
+
685
+ ## RMagick 1.6.2
686
+
687
+ - Fixed ImageList#deconstruct to return an imagelist
688
+ - Fixed installation procedure to propagate user's CFLAGS, CPPFLAGS,
689
+ and LDFLAGS through to the low-level Makefile
690
+ - Fixed bugs #1048, #1127
691
+
692
+ ## RMagick 1.6.1
693
+
694
+ - Changed to match changes in ImageMagick 6.1.4 API
695
+ - Fixed bug #950
696
+
697
+ ## RMagick 1.6.0
698
+
699
+ - Added posterize, gaussian_blur_channel, convolve_channel methods to Image class
700
+ (ImageMagick 6.0.0)
701
+ - Added new CompositeOperator constants (ImageMagick 6.0.0)
702
+ - Added trim and trim! methods to Image class
703
+ - Added each method to Enum subclasses
704
+ - Added stroke_width= attribute to the Draw class
705
+ - Fixed bugs #624, #642, #716, applied patch #819 (thanks to Daniel Quimper)
706
+ - Tested with ImageMagick 6.0.5-2, GraphicsMagick 1.1.3, Ruby 1.8.2
707
+
708
+ ## RMagick 1.5.0
709
+
710
+ - Added meaningful implementations of dup and clone to the Image and Draw
711
+ classes. Clarified the documentation.
712
+ - Do not allow changes to frozen Image, ImageList, and Draw objects.
713
+ - Raise TypeError if freeze method sent to Image::Info or ImageList::Montage
714
+ object.
715
+ - Added view method to Image, Image::View class (thanks to Ara T. Howard and
716
+ Charles Comstock on c.l.r for the discussion which prompted me to add this class)
717
+ - Added grayscale_pseudo_class method to Image class (GraphicsMagick 1.1)
718
+ - Added radial_blur, random_threshold_channel methods to Image class
719
+ (ImageMagick 6.0.0)
720
+ - Added quantum_operator method to Image class (GraphicsMagick 1.1, ImageMagick 6.0.0)
721
+ - Added statistics method to Image class (GraphicsMagick 1.1)
722
+ - Support channel_extrema, channel_mean with GraphicsMagick 1.1
723
+ - Added endian attribute to Image class
724
+ - Added composite! method to Image class
725
+ - Deprecated random_channel_threshold method when linked with ImageMagick 6.0.0.
726
+
727
+ ## RMagick 1.4.0
728
+
729
+ - Revised and updated documentation
730
+ - Implemented enumeration values as instances of an Enum
731
+ class. Based on a description by Paul Brannon in ruby-talk 79041.
732
+ - Added HSLColorspace, HWBColorspace constants (ImageMagick 5.5.7,
733
+ GraphicsMagick 1.0.2)
734
+ - Added CopyCyanCompositeOp, CopyMagentaCompositeOp,
735
+ CopyYellowCompositeOp, CopyBlackCompositeOp constants (ImageMagick 5.5.7,
736
+ GraphicsMagick 1.1)
737
+ - Added ReplaceCompositeOp. CopyCompositeOp constants (ImageMagick 6.0.0)
738
+ - Added color_histogram to Image class. (ImageMagick 6.0.0, GraphicsMagick 1.1)
739
+ - Added define method to Image::Info class (ImageMagick 6.0.0, GraphicsMagick 1.1)
740
+ - Added tint, each_profile, channel_extrema, channel_compare,
741
+ channel_depth, channel_mean, quantum_depth, preview, gamma_channel,
742
+ negate_channel, bilevel_channel methods to Image class (ImageMagick 6.0.0)
743
+ - Added get_exif_by_entry, get_exif_by_tag to Image class
744
+ - Added border! method to Image class
745
+ - Added fcmp, intensity methods to Pixel class
746
+ - Added Version_long constant
747
+ - The 'fuzz' attribute in the Image and ImageInfo classes now
748
+ accepts a percentage value as well as a numeric value.
749
+ - Added Geometry class and changed all methods that accept a geometry
750
+ string to accept a Geometry object as well
751
+ - Added dup and clone methods to the ImageList, Image, and Draw
752
+ classes (Fix for bug #254.)
753
+ - Tested with latest ImageMagick 6.0.0 beta and GraphicsMagick 1.1 snapshot
754
+
755
+ ## RMagick 1.3.2
756
+
757
+ - Fix profile! to require only 2 arguments, as documented.
758
+ - Correct spelling of 'transparent' in text_antialias.rb example.
759
+ - Add output of `Magick-config --libs` to LIBS variable in configure
760
+ - Minor fixes in documentation
761
+ - Test with GraphicsMagick 1.0.4
762
+ - Test with latest ImageMagick 5.5.8 beta
763
+
764
+ ## RMagick 1.3.1
765
+
766
+ - Fixed default base URI in the links to the installed xMagick doc
767
+ - Applied the patch for bug #76 that caused the rubyname.rb example
768
+ to hang when installing on FreeBSD.
769
+ - Fixed the <=> method in Image to return nil when the class of the
770
+ other object is not Image
771
+ - Added code to ensure that the `text' argument to Draw#text is not
772
+ nil or empty
773
+ - Fixed the handle_error function to re-initialize the exception
774
+ structure after destroying its contents.
775
+
776
+ ## RMagick 1.3.0
777
+
778
+ - Added strip!, import_pixels, export_pixels, random_channel_threshold
779
+ to the Image class. (Available only with ImageMagick 5.5.8, which
780
+ is still in beta.)
781
+ - Added black_threshold and white_threshold to the Image class.
782
+ - Added format= attribute writer to the Image class
783
+ - Added monochrome= attribute writer to the Image::Info class
784
+ - Added annotate to the Image class.
785
+ - Made the image argument to get_type_metrics optional. (Thanks to
786
+ Hal Fulton for suggesting this change and the annotate change!)
787
+ - Enhance the read, write, and ping methods in both the Image
788
+ class and the ImageList class to accept an open File object as
789
+ well as a filename argument.
790
+ - Added change_geometry to the Image class
791
+ - Changed configure to generate top-level Makefile with install
792
+ and uninstall targets. (Thanks to Bob Friesenhahn for the
793
+ suggestion and the the Makefile!)
794
+ - Incorporated 1.2.2.1 patch to correct problems when building
795
+ with Ruby 1.6.7.
796
+ - Added "magick_location" attribute to the ImageMagickError
797
+ class. (Available only with GraphicsMagick 1.1, not yet released.)
798
+ - Tested with ImageMagick 5.5.8 beta
799
+ - Tested with GraphicsMagick 1.0.2 and 1.1 snapshot
800
+ - Tested with Ruby 1.8.0
801
+ - Changed to MIT license
802
+
803
+ ## RMagick 1.2.2
804
+
805
+ - Fixed many bugs in configuration script
806
+ - Added support for GraphicsMagick 1.0 (with assistance from Bob Friesenhahn)
807
+ - Changed default documentation directory (--doc-dir option default) to
808
+ $prefix/share/RMagick
809
+ - Added "examples" directory to contain example programs that aren't
810
+ referenced by the documentation
811
+
812
+ ## RMagick 1.2.1
813
+
814
+ - Yet another fix to the Cygwin installation procedure
815
+
816
+ ## RMagick 1.2.0
817
+
818
+ - Changed install to work correctly on Cygwin
819
+ (Cygwin testing by Yuki Hirakawa and David Martinez Garcia.)
820
+ - Changed install to support Gentoo ebuild
821
+ (Gentoo support provided by Tom Payne.)
822
+ - Changed configure script to find IM doc in IM 5.5.7
823
+ - Added Image#capture
824
+ - Added optional matte_pct argument to Image#colorize
825
+ - Add default argument values to Image#gaussian_blur
826
+ - Fix bug in Image#store_pixels that prevented it from working with
827
+ GIF and other PseudoClass image formats
828
+ - Changed Image#crop and Image#crop! to accept a GravityType constant
829
+ as the first argument, instead of the x- and y-offset arguments.
830
+ (Suggested by Robert Wagner.)
831
+ - Added Image::Info#filename=, image_type=
832
+ - Added ImageList#__map__ as an alias for Enumerable#map
833
+ - Added fetch, insert, select, reject methods to ImageList class for
834
+ Ruby 1.8.0
835
+ - Undefined zip and transpose methods in ImageList class for Ruby 1.8.0
836
+ - ImageMagick 5.5.7 supported
837
+
838
+ ## RMagick 1.1.0
839
+
840
+ - Fixed bug in handle_error that caused an abend when linked with IM 5.5.6
841
+ - Added RMAGICK image "format". When read, returns 252x108 RMagick logo
842
+ in PNG format.
843
+ - Changed examples to give all floating point constants a leading digit.
844
+ - Added Image#rotate!
845
+ - Tested with Ruby 1.8.0preview2
846
+ - Added Image#extract_info, Image::Info#extract=, Image::Info#scene=,
847
+ Image::Info#number_scenes=, Image::Info#tile=
848
+ - Added Draw#text_align, Draw#text_anchor, Draw#text_undercolor
849
+ - ImageMagick 5.5.6 supported
850
+
851
+ ## RMagick 1.0.0
852
+
853
+ - Fixed warnings when compiling with Ruby 1.8.0
854
+ - Added Draw#rotation=, rotated_text.rb
855
+ - Fixed temp image files in Montage_texture and Draw_composite
856
+ - ImageMagick 5.5.5 supported
857
+
858
+ ## RMagick 0.9.5
859
+
860
+ - Added channel.rb example
861
+ - Fixed install problems with IM 5.5.1
862
+
863
+ ## RMagick 0.9.4
864
+
865
+ - Cleaned up documentation.
866
+ - Added logging methods Magick.set_log_event_mask and Magick.set_log_format
867
+ - Added Magick.set_monitor
868
+ - Added custom serialization methods _dump and _load to Image class.
869
+ Added marshaling section to usage doc.
870
+ - Added Image#mime_type
871
+ - Changed install to use autoconf-generated configure script
872
+ - Replaced makedoc.rb with post-install.rb hook
873
+ - Added rmconst.rb utility script
874
+ - ImageMagick 5.5.4 supported
875
+
876
+ ## RMagick 0.9.3
877
+
878
+ - Changed ImageList#<=> to use same algorithm as Array#<=>
879
+ - Changed Draw class variables to class constants
880
+ - Fixed bug in Magick::colors method that caused some colors
881
+ to be repeated or missed when the optional block is used
882
+ - Changed fill classes to not inherit from common Fill class.
883
+ Removed Fill class.
884
+ - Improved usage documentation
885
+ - Added Image#level_channel, introduced with IM 5.5.3
886
+ - ImageMagick 5.5.3 supported
887
+ - Ruby 1.6.8, 1.8.0preview1 supported
888
+
889
+ ## RMagick 0.9.2
890
+
891
+ - Added crop!, flip!, flop!, magnify!, minify!, resize!, sample!,
892
+ scale!, shave!, channel_threshold methods to Image class
893
+ - Documented DisposeType, ColorSeparationMatteType and OptimizeType
894
+ constants
895
+ - Changed Image#<=>, ImageList#<=> to raise TypeError if the other
896
+ argument is not in the same class
897
+ - Deleted Image#==, ImageList#==, include Comparable in both classes
898
+ - Added Image#thumbnail, thumbnail!, adaptive_threshold for 5.5.2 & later
899
+ - Used image list functions in 5.5.2 & later
900
+ - ImageMagick 5.5.2 supported
901
+ - Removed last vestiges of 5.4.9 support
902
+
903
+ ## RMagick 0.9.1
904
+
905
+ - Added -Wl,rpath option to $LDFLAGS in extconf.rb
906
+ - #include <sys/types.h> in rmagick.h
907
+ - Changed set_cache_threshold to call SetMagickResourceLimit instead of SetCacheThreshold
908
+ - Changed Image_texture_flood_fill to clone texture image instead of adding a reference
909
+ - Many fixes to the Array methods in ImageList
910
+ - Defined Image#<=>, defined Image#== in terms of Image#<=>
911
+ - Defined ImageList#<=> in terms of Image#<=>
912
+
913
+ ## RMagick 0.9.0
914
+
915
+ 1st beta