rmagick 2.13.2 → 4.2.2

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 (380) hide show
  1. checksums.yaml +7 -0
  2. data/.codeclimate.yml +63 -0
  3. data/.editorconfig +17 -0
  4. data/.github/ISSUE_TEMPLATE.md +17 -0
  5. data/.github/workflows/ci.yml +107 -0
  6. data/.gitignore +25 -0
  7. data/.rspec +2 -0
  8. data/.rubocop.yml +37 -0
  9. data/.rubocop_todo.yml +449 -0
  10. data/.yardopts +5 -0
  11. data/CHANGELOG.md +1277 -0
  12. data/CODE_OF_CONDUCT.md +128 -0
  13. data/CONTRIBUTING.md +81 -0
  14. data/Gemfile +4 -0
  15. data/LICENSE +20 -0
  16. data/README.md +324 -0
  17. data/Rakefile +190 -0
  18. data/before_install_linux.sh +69 -0
  19. data/before_install_osx.sh +57 -0
  20. data/deprecated/RMagick.rb +6 -0
  21. data/ext/RMagick/extconf.rb +334 -333
  22. data/ext/RMagick/rmagick.c +129 -127
  23. data/ext/RMagick/rmagick.h +221 -320
  24. data/ext/RMagick/rmdraw.c +458 -767
  25. data/ext/RMagick/rmenum.c +305 -752
  26. data/ext/RMagick/rmfill.c +231 -199
  27. data/ext/RMagick/rmilist.c +437 -478
  28. data/ext/RMagick/rmimage.c +6130 -5342
  29. data/ext/RMagick/rminfo.c +695 -833
  30. data/ext/RMagick/rmkinfo.c +198 -0
  31. data/ext/RMagick/rmmain.c +752 -506
  32. data/ext/RMagick/rmmontage.c +94 -152
  33. data/ext/RMagick/rmpixel.c +619 -425
  34. data/ext/RMagick/rmstruct.c +206 -309
  35. data/ext/RMagick/rmutil.c +514 -344
  36. data/lib/rmagick/version.rb +5 -0
  37. data/lib/rmagick.rb +1 -0
  38. data/lib/rmagick_internal.rb +1922 -0
  39. data/lib/rvg/clippath.rb +35 -39
  40. data/lib/rvg/container.rb +123 -124
  41. data/lib/rvg/deep_equal.rb +45 -49
  42. data/lib/rvg/describable.rb +41 -47
  43. data/lib/rvg/embellishable.rb +380 -411
  44. data/lib/rvg/misc.rb +691 -711
  45. data/lib/rvg/paint.rb +43 -47
  46. data/lib/rvg/pathdata.rb +119 -125
  47. data/lib/rvg/rvg.rb +214 -213
  48. data/lib/rvg/stretchable.rb +153 -162
  49. data/lib/rvg/stylable.rb +111 -117
  50. data/lib/rvg/text.rb +169 -180
  51. data/lib/rvg/transformable.rb +121 -127
  52. data/lib/rvg/units.rb +58 -61
  53. data/rmagick.gemspec +36 -16
  54. metadata +188 -365
  55. data/ChangeLog +0 -773
  56. data/Doxyfile +0 -1514
  57. data/README-Mac-OSX.txt +0 -1
  58. data/README.html +0 -10
  59. data/build_tarball.rake +0 -215
  60. data/doc/comtasks.html +0 -287
  61. data/doc/constants.html +0 -1581
  62. data/doc/css/doc.css +0 -299
  63. data/doc/css/popup.css +0 -34
  64. data/doc/css/ref.css +0 -67
  65. data/doc/draw.html +0 -3269
  66. data/doc/ex/InitialCoords.rb +0 -23
  67. data/doc/ex/NewCoordSys.rb +0 -32
  68. data/doc/ex/OrigCoordSys.rb +0 -18
  69. data/doc/ex/PreserveAspectRatio.rb +0 -205
  70. data/doc/ex/RotateScale.rb +0 -37
  71. data/doc/ex/Skew.rb +0 -38
  72. data/doc/ex/Use01.rb +0 -16
  73. data/doc/ex/Use02.rb +0 -21
  74. data/doc/ex/Use03.rb +0 -16
  75. data/doc/ex/ViewBox.rb +0 -33
  76. data/doc/ex/adaptive_threshold.rb +0 -10
  77. data/doc/ex/add_noise.rb +0 -17
  78. data/doc/ex/affine.rb +0 -48
  79. data/doc/ex/affine_transform.rb +0 -20
  80. data/doc/ex/arc.rb +0 -49
  81. data/doc/ex/arcpath.rb +0 -33
  82. data/doc/ex/arcs01.rb +0 -28
  83. data/doc/ex/arcs02.rb +0 -61
  84. data/doc/ex/average.rb +0 -15
  85. data/doc/ex/axes.rb +0 -64
  86. data/doc/ex/baseline_shift01.rb +0 -18
  87. data/doc/ex/bilevel_channel.rb +0 -9
  88. data/doc/ex/blur_image.rb +0 -12
  89. data/doc/ex/border.rb +0 -10
  90. data/doc/ex/bounding_box.rb +0 -44
  91. data/doc/ex/cbezier1.rb +0 -42
  92. data/doc/ex/cbezier2.rb +0 -42
  93. data/doc/ex/cbezier3.rb +0 -42
  94. data/doc/ex/cbezier4.rb +0 -43
  95. data/doc/ex/cbezier5.rb +0 -43
  96. data/doc/ex/cbezier6.rb +0 -53
  97. data/doc/ex/channel.rb +0 -26
  98. data/doc/ex/charcoal.rb +0 -12
  99. data/doc/ex/chop.rb +0 -29
  100. data/doc/ex/circle.rb +0 -33
  101. data/doc/ex/circle01.rb +0 -17
  102. data/doc/ex/clip_path.rb +0 -60
  103. data/doc/ex/coalesce.rb +0 -60
  104. data/doc/ex/color_fill_to_border.rb +0 -29
  105. data/doc/ex/color_floodfill.rb +0 -28
  106. data/doc/ex/color_histogram.rb +0 -48
  107. data/doc/ex/color_reset.rb +0 -11
  108. data/doc/ex/colorize.rb +0 -16
  109. data/doc/ex/colors.rb +0 -64
  110. data/doc/ex/compose_mask.rb +0 -23
  111. data/doc/ex/composite.rb +0 -135
  112. data/doc/ex/composite_layers.rb +0 -53
  113. data/doc/ex/composite_tiled.rb +0 -23
  114. data/doc/ex/contrast.rb +0 -36
  115. data/doc/ex/crop.rb +0 -31
  116. data/doc/ex/crop_with_gravity.rb +0 -46
  117. data/doc/ex/cubic01.rb +0 -45
  118. data/doc/ex/cubic02.rb +0 -94
  119. data/doc/ex/cycle_colormap.rb +0 -21
  120. data/doc/ex/dissolve.rb +0 -13
  121. data/doc/ex/drawcomp.rb +0 -42
  122. data/doc/ex/drop_shadow.rb +0 -60
  123. data/doc/ex/edge.rb +0 -11
  124. data/doc/ex/ellipse.rb +0 -45
  125. data/doc/ex/ellipse01.rb +0 -22
  126. data/doc/ex/emboss.rb +0 -11
  127. data/doc/ex/enhance.rb +0 -28
  128. data/doc/ex/equalize.rb +0 -11
  129. data/doc/ex/evenodd.rb +0 -43
  130. data/doc/ex/fill_pattern.rb +0 -26
  131. data/doc/ex/flatten_images.rb +0 -36
  132. data/doc/ex/flip.rb +0 -11
  133. data/doc/ex/flop.rb +0 -11
  134. data/doc/ex/font_styles.rb +0 -34
  135. data/doc/ex/fonts.rb +0 -20
  136. data/doc/ex/frame.rb +0 -12
  137. data/doc/ex/gaussian_blur.rb +0 -11
  138. data/doc/ex/get_multiline_type_metrics.rb +0 -42
  139. data/doc/ex/get_pixels.rb +0 -48
  140. data/doc/ex/get_type_metrics.rb +0 -146
  141. data/doc/ex/gradientfill.rb +0 -27
  142. data/doc/ex/grav.rb +0 -46
  143. data/doc/ex/gravity.rb +0 -79
  144. data/doc/ex/group.rb +0 -26
  145. data/doc/ex/hatchfill.rb +0 -27
  146. data/doc/ex/image.rb +0 -46
  147. data/doc/ex/images/Apple.miff +0 -0
  148. data/doc/ex/images/Ballerina.jpg +0 -0
  149. data/doc/ex/images/Ballerina3.jpg +0 -0
  150. data/doc/ex/images/Button_0.gif +0 -0
  151. data/doc/ex/images/Button_1.gif +0 -0
  152. data/doc/ex/images/Button_2.gif +0 -0
  153. data/doc/ex/images/Button_3.gif +0 -0
  154. data/doc/ex/images/Button_4.gif +0 -0
  155. data/doc/ex/images/Button_5.gif +0 -0
  156. data/doc/ex/images/Button_6.gif +0 -0
  157. data/doc/ex/images/Button_7.gif +0 -0
  158. data/doc/ex/images/Button_8.gif +0 -0
  159. data/doc/ex/images/Button_9.gif +0 -0
  160. data/doc/ex/images/Button_A.gif +0 -0
  161. data/doc/ex/images/Button_B.gif +0 -0
  162. data/doc/ex/images/Button_C.gif +0 -0
  163. data/doc/ex/images/Button_D.gif +0 -0
  164. data/doc/ex/images/Button_E.gif +0 -0
  165. data/doc/ex/images/Button_F.gif +0 -0
  166. data/doc/ex/images/Button_G.gif +0 -0
  167. data/doc/ex/images/Button_H.gif +0 -0
  168. data/doc/ex/images/Button_I.gif +0 -0
  169. data/doc/ex/images/Button_J.gif +0 -0
  170. data/doc/ex/images/Button_K.gif +0 -0
  171. data/doc/ex/images/Button_L.gif +0 -0
  172. data/doc/ex/images/Button_M.gif +0 -0
  173. data/doc/ex/images/Button_N.gif +0 -0
  174. data/doc/ex/images/Button_O.gif +0 -0
  175. data/doc/ex/images/Button_P.gif +0 -0
  176. data/doc/ex/images/Button_Q.gif +0 -0
  177. data/doc/ex/images/Button_R.gif +0 -0
  178. data/doc/ex/images/Button_S.gif +0 -0
  179. data/doc/ex/images/Button_T.gif +0 -0
  180. data/doc/ex/images/Button_U.gif +0 -0
  181. data/doc/ex/images/Button_V.gif +0 -0
  182. data/doc/ex/images/Button_W.gif +0 -0
  183. data/doc/ex/images/Button_X.gif +0 -0
  184. data/doc/ex/images/Button_Y.gif +0 -0
  185. data/doc/ex/images/Button_Z.gif +0 -0
  186. data/doc/ex/images/Cheetah.jpg +0 -0
  187. data/doc/ex/images/Coffee.wmf +0 -0
  188. data/doc/ex/images/Flower_Hat.jpg +0 -0
  189. data/doc/ex/images/Gold_Statue.jpg +0 -0
  190. data/doc/ex/images/Hot_Air_Balloons.jpg +0 -0
  191. data/doc/ex/images/Hot_Air_Balloons_H.jpg +0 -0
  192. data/doc/ex/images/Leaf.miff +0 -0
  193. data/doc/ex/images/No.wmf +0 -0
  194. data/doc/ex/images/Polynesia.jpg +0 -0
  195. data/doc/ex/images/Red_Rocks.jpg +0 -0
  196. data/doc/ex/images/Rocks_On_Beach.miff +0 -0
  197. data/doc/ex/images/Shorts.jpg +0 -0
  198. data/doc/ex/images/Snake.wmf +0 -0
  199. data/doc/ex/images/Violin.jpg +0 -0
  200. data/doc/ex/images/Yellow_Rose.miff +0 -0
  201. data/doc/ex/images/big-duck.gif +0 -0
  202. data/doc/ex/images/duck.gif +0 -0
  203. data/doc/ex/images/duck0.gif +0 -0
  204. data/doc/ex/images/duck1.gif +0 -0
  205. data/doc/ex/images/duck10.gif +0 -0
  206. data/doc/ex/images/duck11.gif +0 -0
  207. data/doc/ex/images/duck12.gif +0 -0
  208. data/doc/ex/images/duck13.gif +0 -0
  209. data/doc/ex/images/duck14.gif +0 -0
  210. data/doc/ex/images/duck15.gif +0 -0
  211. data/doc/ex/images/duck2.gif +0 -0
  212. data/doc/ex/images/duck3.gif +0 -0
  213. data/doc/ex/images/duck4.gif +0 -0
  214. data/doc/ex/images/duck5.gif +0 -0
  215. data/doc/ex/images/duck6.gif +0 -0
  216. data/doc/ex/images/duck7.gif +0 -0
  217. data/doc/ex/images/duck8.gif +0 -0
  218. data/doc/ex/images/duck9.gif +0 -0
  219. data/doc/ex/images/graydient230x6.gif +0 -0
  220. data/doc/ex/images/logo400x83.gif +0 -0
  221. data/doc/ex/images/model.miff +0 -0
  222. data/doc/ex/images/notimplemented.gif +0 -0
  223. data/doc/ex/images/smile.miff +0 -0
  224. data/doc/ex/images/spin.gif +0 -0
  225. data/doc/ex/implode.rb +0 -34
  226. data/doc/ex/level.rb +0 -11
  227. data/doc/ex/level_colors.rb +0 -11
  228. data/doc/ex/line.rb +0 -42
  229. data/doc/ex/line01.rb +0 -23
  230. data/doc/ex/mask.rb +0 -36
  231. data/doc/ex/matte_fill_to_border.rb +0 -40
  232. data/doc/ex/matte_floodfill.rb +0 -33
  233. data/doc/ex/matte_replace.rb +0 -40
  234. data/doc/ex/median_filter.rb +0 -28
  235. data/doc/ex/modulate.rb +0 -11
  236. data/doc/ex/mono.rb +0 -23
  237. data/doc/ex/morph.rb +0 -26
  238. data/doc/ex/mosaic.rb +0 -35
  239. data/doc/ex/motion_blur.rb +0 -11
  240. data/doc/ex/negate.rb +0 -11
  241. data/doc/ex/negate_channel.rb +0 -9
  242. data/doc/ex/nested_rvg.rb +0 -21
  243. data/doc/ex/nonzero.rb +0 -43
  244. data/doc/ex/normalize.rb +0 -11
  245. data/doc/ex/oil_paint.rb +0 -11
  246. data/doc/ex/opacity.rb +0 -37
  247. data/doc/ex/ordered_dither.rb +0 -11
  248. data/doc/ex/path.rb +0 -64
  249. data/doc/ex/pattern1.rb +0 -25
  250. data/doc/ex/pattern2.rb +0 -26
  251. data/doc/ex/polaroid.rb +0 -28
  252. data/doc/ex/polygon.rb +0 -24
  253. data/doc/ex/polygon01.rb +0 -23
  254. data/doc/ex/polyline.rb +0 -23
  255. data/doc/ex/polyline01.rb +0 -23
  256. data/doc/ex/posterize.rb +0 -8
  257. data/doc/ex/preview.rb +0 -9
  258. data/doc/ex/qbezierpath.rb +0 -52
  259. data/doc/ex/quad01.rb +0 -36
  260. data/doc/ex/quantize-m.rb +0 -25
  261. data/doc/ex/radial_blur.rb +0 -9
  262. data/doc/ex/raise.rb +0 -8
  263. data/doc/ex/random_threshold_channel.rb +0 -13
  264. data/doc/ex/rect01.rb +0 -15
  265. data/doc/ex/rect02.rb +0 -22
  266. data/doc/ex/rectangle.rb +0 -35
  267. data/doc/ex/reduce_noise.rb +0 -28
  268. data/doc/ex/remap.rb +0 -12
  269. data/doc/ex/remap_images.rb +0 -21
  270. data/doc/ex/resize_to_fill.rb +0 -10
  271. data/doc/ex/resize_to_fit.rb +0 -10
  272. data/doc/ex/roll.rb +0 -9
  273. data/doc/ex/rotate.rb +0 -45
  274. data/doc/ex/rotate_f.rb +0 -14
  275. data/doc/ex/roundrect.rb +0 -34
  276. data/doc/ex/rubyname.rb +0 -30
  277. data/doc/ex/rvg_clippath.rb +0 -14
  278. data/doc/ex/rvg_linecap.rb +0 -43
  279. data/doc/ex/rvg_linejoin.rb +0 -41
  280. data/doc/ex/rvg_opacity.rb +0 -19
  281. data/doc/ex/rvg_pattern.rb +0 -26
  282. data/doc/ex/rvg_stroke_dasharray.rb +0 -12
  283. data/doc/ex/segment.rb +0 -11
  284. data/doc/ex/sepiatone.rb +0 -8
  285. data/doc/ex/shade.rb +0 -11
  286. data/doc/ex/shadow.rb +0 -31
  287. data/doc/ex/shave.rb +0 -15
  288. data/doc/ex/shear.rb +0 -10
  289. data/doc/ex/sketch.rb +0 -18
  290. data/doc/ex/skewx.rb +0 -52
  291. data/doc/ex/skewy.rb +0 -47
  292. data/doc/ex/smile.rb +0 -125
  293. data/doc/ex/solarize.rb +0 -11
  294. data/doc/ex/sparse_color.rb +0 -55
  295. data/doc/ex/splice.rb +0 -9
  296. data/doc/ex/spread.rb +0 -11
  297. data/doc/ex/stegano.rb +0 -55
  298. data/doc/ex/stroke_dasharray.rb +0 -43
  299. data/doc/ex/stroke_fill.rb +0 -11
  300. data/doc/ex/stroke_linecap.rb +0 -44
  301. data/doc/ex/stroke_linejoin.rb +0 -48
  302. data/doc/ex/stroke_width.rb +0 -49
  303. data/doc/ex/swirl.rb +0 -17
  304. data/doc/ex/text.rb +0 -37
  305. data/doc/ex/text01.rb +0 -17
  306. data/doc/ex/text_align.rb +0 -36
  307. data/doc/ex/text_antialias.rb +0 -38
  308. data/doc/ex/text_styles.rb +0 -21
  309. data/doc/ex/text_undercolor.rb +0 -28
  310. data/doc/ex/texture_fill_to_border.rb +0 -34
  311. data/doc/ex/texture_floodfill.rb +0 -32
  312. data/doc/ex/texturefill.rb +0 -25
  313. data/doc/ex/threshold.rb +0 -13
  314. data/doc/ex/to_blob.rb +0 -14
  315. data/doc/ex/translate.rb +0 -39
  316. data/doc/ex/transparent.rb +0 -38
  317. data/doc/ex/transpose.rb +0 -9
  318. data/doc/ex/transverse.rb +0 -9
  319. data/doc/ex/tref01.rb +0 -25
  320. data/doc/ex/triangle01.rb +0 -16
  321. data/doc/ex/trim.rb +0 -24
  322. data/doc/ex/tspan01.rb +0 -18
  323. data/doc/ex/tspan02.rb +0 -19
  324. data/doc/ex/tspan03.rb +0 -21
  325. data/doc/ex/unsharp_mask.rb +0 -28
  326. data/doc/ex/viewex.rb +0 -35
  327. data/doc/ex/vignette.rb +0 -12
  328. data/doc/ex/watermark.rb +0 -28
  329. data/doc/ex/wave.rb +0 -9
  330. data/doc/ex/wet_floor.rb +0 -59
  331. data/doc/ex/writing_mode01.rb +0 -27
  332. data/doc/ex/writing_mode02.rb +0 -26
  333. data/doc/ilist.html +0 -2056
  334. data/doc/image1.html +0 -4680
  335. data/doc/image2.html +0 -3665
  336. data/doc/image3.html +0 -4522
  337. data/doc/imageattrs.html +0 -1638
  338. data/doc/imusage.html +0 -514
  339. data/doc/index.html +0 -416
  340. data/doc/info.html +0 -1499
  341. data/doc/magick.html +0 -565
  342. data/doc/optequiv.html +0 -2435
  343. data/doc/rvg.html +0 -975
  344. data/doc/rvgclip.html +0 -248
  345. data/doc/rvggroup.html +0 -305
  346. data/doc/rvgimage.html +0 -289
  347. data/doc/rvgpattern.html +0 -475
  348. data/doc/rvgshape.html +0 -406
  349. data/doc/rvgstyle.html +0 -270
  350. data/doc/rvgtext.html +0 -465
  351. data/doc/rvgtspan.html +0 -238
  352. data/doc/rvgtut.html +0 -530
  353. data/doc/rvguse.html +0 -145
  354. data/doc/rvgxform.html +0 -294
  355. data/doc/scripts/doc.js +0 -22
  356. data/doc/scripts/stripeTables.js +0 -23
  357. data/doc/struct.html +0 -1339
  358. data/doc/usage.html +0 -1621
  359. data/examples/constitute.rb +0 -7
  360. data/examples/crop_with_gravity.rb +0 -46
  361. data/examples/demo.rb +0 -324
  362. data/examples/describe.rb +0 -44
  363. data/examples/find_similar_region.rb +0 -34
  364. data/examples/histogram.rb +0 -325
  365. data/examples/identify.rb +0 -187
  366. data/examples/image_opacity.rb +0 -29
  367. data/examples/import_export.rb +0 -31
  368. data/examples/pattern_fill.rb +0 -38
  369. data/examples/rotating_text.rb +0 -45
  370. data/examples/spinner.rb +0 -50
  371. data/examples/thumbnail.rb +0 -65
  372. data/examples/vignette.rb +0 -79
  373. data/ext/RMagick/MANIFEST +0 -358
  374. data/lib/RMagick.rb +0 -1962
  375. data/metaconfig +0 -7
  376. data/post-clean.rb +0 -12
  377. data/post-install.rb +0 -50
  378. data/post-setup.rb +0 -254
  379. data/setup.rb +0 -1585
  380. data/uninstall.rb +0 -76
data/CHANGELOG.md ADDED
@@ -0,0 +1,1277 @@
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 4.2.2
7
+
8
+ Bug Fixes:
9
+
10
+ - Remove deprecation warning about block syntax (#1272)
11
+
12
+ You are still recommended to use the block parameter instead of `self.` but
13
+ we're silencing the deprecation warning until we can get RMagick's code up to
14
+ that standard.
15
+
16
+ ## RMagick 4.2.1
17
+
18
+ Bug Fixes:
19
+
20
+ - Fix compilation with optimization on glibc (#1263)
21
+
22
+ ## RMagick 4.2.0
23
+
24
+ This adds a deprecation warning when using a block for image operations.
25
+ Instead of setting properties on `self`, you should accept a block argument and
26
+ modify that instead. In a future version we we no longer be binding the block
27
+ to the image.
28
+
29
+ ```diff
30
+ - img.to_blob { self.quality = 75 }
31
+ + img.to_blob { |image| image.quality = 75 }
32
+ ```
33
+
34
+ Improvements:
35
+
36
+ - Updated error messages if runtime ImageMagick version was not matched with when installed rmagick (#1213)
37
+ - Improve Image#resize performance with ImageMagick 7 (#1240)
38
+ - Added new colorspaces (#1252)
39
+
40
+ Bug Fixes:
41
+
42
+ - Fix assertion failed in Magick::TextureFill.new with with unexpected argument (#1216)
43
+ - Call with yield when there is a block arguments (#701)
44
+ - Avoid crash with monitor feature on Ruby 3.0 (#1253)
45
+
46
+ ## RMagick 4.1.2
47
+
48
+ Bug Fixes:
49
+
50
+ - Fix build error on Freebsd (#1199)
51
+ - Add workaround for FreeBSD that it isn't able to process PDF (#1203)
52
+
53
+ ## RMagick 4.1.1
54
+
55
+ Bug Fixes:
56
+
57
+ - Fix bug of signal handling internally (#1189)
58
+
59
+ ## RMagick 4.1.0
60
+
61
+ Improvements:
62
+
63
+ - reduce package size by more than 1.5mb (#849)
64
+ - improve memory usage (#836)
65
+ - add support for Ruby 2.7 (#853)
66
+ - *many* documentation fixes and cleanups
67
+ - *many* testing fixes and cleanups
68
+ - Support CMYK color in Image#get_pixels (#871)
69
+ - Support to get CMYK color in Image#pixel_color (#875)
70
+ - Support to set CMYK color in Image#pixel_color (#908)
71
+ - Add ImageList#map (#1154)
72
+
73
+ Bug Fixes:
74
+
75
+ - fixed memory leaks (#809, #815, #816, #960, #1024)
76
+ - eliminate compiler warnings (#855, #864, #878, #917, #969, #981, #996, #1000, #1044)
77
+ - Recognize invert option in Image#opaque_channel with ImageMagick 7 (#882)
78
+ - Fix heap-buffer-overflow in Image#wet_floor with ImageMagick 7 (#883)
79
+ - Handle channel value with new image in Image#opaque_channel with ImageMagick 7 (#886)
80
+ - Pass caption value into ImageMagick 7 API in Image#polaroid (#898)
81
+ - Example: Fix “uninitialized constant Magick::TransparentOpacity” error (#899)
82
+ - Example: Fix error of constant usage (#900)
83
+ - Example: Fix error in doc/ex/composite.rb (#901)
84
+ - Example: Fix error in doc/ex/crop_with_gravity.rb (#902)
85
+ - Revert removed RemapImages() calling in ImageList#remap for ImageMagick 6 (#904)
86
+ - Example: Fix alpha channel in examples/vignette.rb (#918)
87
+ - Example: Fix alpha channel in doc/ex/coalesce.rb (#920)
88
+ - Handle alpha value in Pixel#to_color (#922)
89
+ - Detect the proper ARCHFLAGS on macOS (#923)
90
+ - Handle boolean value as dither option in ImageList#quantize (#926)
91
+ - Use strlcpy instead of strncpy to ensure null terminating. (#933)
92
+ - Remove memalign() (#939)
93
+ - Add safe strlen() to ensure avoiding buffer overrun (#940)
94
+ - Use strlcpy() instead of strcpy() to ensure avoiding buffer overflow (#941)
95
+ - Use snprintf() instead of sprintf() to ensure avoiding buffer overflow (#945)
96
+ - Example: Remove unnecessary alpha setting (#950)
97
+ - Replace to correct format specifiers for size_t/ssize_t value (#978)
98
+ - Use proper format specifiers within MinGW (#997)
99
+ - Fix snprintf() format specifiers for unsigned value (#1006)
100
+ - Fix warning of “Variable is reassigned a value before the old one has been use” (#1008)
101
+ - Fix warning of “warning: explicitly assigning value of variable of type 'int' to itself” (#1013)
102
+ - Fix Image#resample to use blur option properly with ImageMagick 7 (#1023)
103
+ - Fix Image#resize to use blur option properly with ImageMagick 7 (#1032)
104
+ - Fix that Color#compliance returns nil with undefined bit (#1049)
105
+ - Check memory API properly on Windows (#1050)
106
+ - Example: Fix “undefined method `opacity’” (#1051)
107
+ - Add workaround to pdf problem (#1072)
108
+ - Fix exception message because #export_pixels accept 0 argument (#1121)
109
+ - Fix default value of `fill` argument in Image#initialize (#1122)
110
+ - Call rm_ensure_result() in creating Image object (#1144)
111
+ - Use StringValueCStr() instead of StringValuePtr() (#1156)
112
+ - Use RSTRING_PTR() to retrieve a pointer of String object for buffer (#1157)
113
+ - Use StringValueCStr() to get null-terminated C-lang string (#1158)
114
+ - Fix SEGV in Magick::Draw#marshal_load (#1162)
115
+ - Fix SEGV in rm_check_ary_len() with unexpected argument value (#1168)
116
+ - Fix SEGV in Image#marshal_load (#1169)
117
+
118
+ Breaking Changes:
119
+
120
+ - remove `tainted?` logic (#854)
121
+
122
+ ## RMagick 4.1.0.rc2
123
+
124
+ - fix a couple of compilation bugs (#796, #797)
125
+
126
+ ## RMagick 4.1.0.rc1
127
+
128
+ The ImageMagick 7 release is here! This adds beta support for ImageMagick 7.
129
+ Much thanks to **@Watson1978** for getting the ball rolling on this and to
130
+ **@dlemstra** for the extraordinary amount of work and patience that went into
131
+ seeing it through. RMagick should currently behave the same way under IM7 as it
132
+ did under IM6, so please open an issue if you find anything that seems out of
133
+ the ordinary.
134
+
135
+ ## RMagick 4.0.0
136
+
137
+ This release removes a *lot* of deprecated functionality, so first upgrade to
138
+ 3.2 and handle any deprecation warnings you see there before upgrading to 4.0.
139
+ There are a handful of removals that we could not, or forgot to deprecate, so
140
+ pay special attention to those below. This clears the road for ImageMagick 7
141
+ support in the very near future.
142
+
143
+ Breaking Changes:
144
+
145
+ - Removed deprecated Image#matte and Image#matte= (#731)
146
+ - Removed deprecated Draw#matte. (#736)
147
+ - Removed deprecated ImageList#fx. (#732)
148
+ - Removed deprecated Info#group and Info#group=. (#733)
149
+ - Removed deprecated KernelInfo#show. (#734)
150
+ - Removed deprecated Pixel#opacity and Pixel#opacity=. (#735)
151
+ - Removed deprecated KernelInfo#zero_nans. (#741)
152
+ - Removed deprecated ImageList#map (#740)
153
+ - Removed deprecated Pixel#from_HSL. (#742)
154
+ - Removed deprecated Image#alpha=. (#739)
155
+ - Removed deprecated Pixel#to_HSL. (#745)
156
+ - Removed deprecated Image#blur and Image#blur=. (#746)
157
+ - Removed deprecated Image#sync_profiles. (#754)
158
+ - Removed deprecated Image#opacity=. (#753)
159
+ - Removed deprecated Image#combine. (#752)
160
+ - Removed deprecated Image#map. (#751)
161
+ - Removed deprecated Image#mask=. (#750)
162
+ - Removed deprecated opacity arguments. (#757)
163
+ - Removed deprecated `OpaqueOpacity` and `TransparentOpacity`. (#765)
164
+ - Removed obsolete enumerations. (#766)
165
+
166
+ The following changes *did not have deprecation warnings* in 3.2, so you'll
167
+ want to double check that you update your code if you were relying on the
168
+ existing behavior:
169
+
170
+ - Changed Color#to_s to return an string that contains alpha instead of opacity. (#760)
171
+ - Changed Pixel#to_s to return a string that contains alpha instead of opacity. (#762)
172
+ - Changed Pixel#hash to use alpha instead of opacity. (#763)
173
+ - Changed Pixel#<=> to use alpha instead of opacity. (#764)
174
+ - Removed `BicubicInterpolatePixel` (use `CatromInterpolatePixel` instead) (#768)
175
+ - Removed `FilterInterpolatePixel` (no replacement) (#768)
176
+ - Renamed `NearestNeighborInterpolatePixel` to `NearestInterpolatePixel` (#768)
177
+
178
+ Enhancements:
179
+
180
+ - Add SetQuantumOperator (#755)
181
+
182
+ Bug Fixes:
183
+
184
+ - Fix SEGV in Image#each_profile (#737)
185
+
186
+ ## RMagick 3.2.0
187
+
188
+ This is expected to be the final deprecation release before RMagick 4.0. We
189
+ have added loads of deprecation warnings to clear the pathway for ImageMagick 7
190
+ support. Once you've fixed all of them you should be fine to upgrade to version
191
+ 4.0 without any pain. There are a small handful of edge cases which we could
192
+ not cleanly deprecate, though they should be extremely rare. These will be
193
+ documented in the 4.0 release. Thanks to @dlemstra for the hard work making
194
+ this release possible.
195
+
196
+ The biggest change in moving towards RMagick 4.0 will be the fact that
197
+ `opacity` is deprecated in favor of `alpha`.
198
+
199
+ **NOTE: `opacity` is the opposite of `alpha`!!!**
200
+
201
+ If you are currently passing opacity into methods, you will need to invert the
202
+ value and use the new `alpha:` keyword argument. If you are passing an integer,
203
+ `alpha = 255 - opacity`. An integer `opacity` of 0 is an `alpha` of 255.
204
+
205
+ Also, **major kudos to @Watson1978** for enabling Ruby's memory management in
206
+ (#697). This should go a long way towards improving RMagick's reputation for
207
+ memory usage.
208
+
209
+ Deprecations: (To be removed in RMagick 4.0)
210
+
211
+ - `Info#group` (#578) (no replacement)
212
+ - `Image#blur` (#579) (no replacement)
213
+ - Renamed `AlphaChannelType` to `AlphaChannelOption` (#596)
214
+ - Renamed `DistortImageMethod` to `DistortMethod` (#605)
215
+ - Renamed `FilterTypes` to `FilterType` (#611)
216
+ - Renamed `InterpolatePixelMethod` to `PixelInterpolateMethod` (#613)
217
+ - Renamed `ImageLayerMethod` to `LayerMethod` (#618)
218
+ - Deprecate the `opacity` property of the Pixel class. (use `alpha` instead) (#619)
219
+ - Deprecate old enum names. (use IM7 names instead) (#627)
220
+ - `StaticGravity` (use `CenterGravity` instead) (#638)
221
+ - `Image#sync_profiles` (no replacement) (#640)
222
+ - Deprecate old metric type values (use IM7 names instead) (#647)
223
+ - Deprecate `ResetAlphaChannel` (no replacement) (#644)
224
+ - Deprecate `FlattenAlphaChannel` (no replacement) (#645)
225
+ - Deprecate `MatteChannel` (no replacement) (#646)
226
+ - Deprecate `ConstantVirtualPixelMethod` (no replacement) (#649)
227
+ - Deprecate `IntegerPixel` (no replacement) (#650)
228
+ - Deprecate `Image.combine` (use `ImageList#combine` instead) (#690)
229
+ - Deprecate `Image#opacity` (use `Image#alpha` instead) (#669)
230
+ - Deprecate unnamed argument for opacity in `Image#transparent` (use keyword `alpha:` instead) (#695)
231
+ - Deprecate unnamed argument for opacity in `Image#black_threshold` and `Image#white_threshold.` (use keyword `alpha:` instead) (#709)
232
+ - Deprecate unnamed argument for opacity in `Image#matte_flood_fill` (use keyword `alpha:` instead) (#711)
233
+ - Deprecate unnamed argument for opacity in `Image#paint_transparent` (use keyword `alpha:` instead) (#717)
234
+ - Deprecate unnamed argument for opacity in `Image#transparent_chroma.` (use keyword `alpha:` instead) (#722)
235
+ - Deprecate `Draw#matte` (use `Draw#alpha` instead) (#724)
236
+
237
+ Enhancements:
238
+
239
+ - Many internal adjustments to prepare for ImageMagick 7 support.
240
+ - Added alpha property to the pixel class. (#617)
241
+ - Add combine to the ImageList class. (#589)
242
+ - Add new alpha constants (#651)
243
+ - Add `Image#mask=` (#660)
244
+ - Add `Draw#alpha` to replace `Draw#matte` (#726)
245
+ - Add Draw#image (#720)
246
+ - Add ArchLinux support (#727)
247
+
248
+ Bug Fixes:
249
+
250
+ - Fix `Font#to_s` to not raise error (#569)
251
+ - Fix a SEGV in `Image#reduce_noise` (#576)
252
+ - Fix infinite loop in `Image#compose` (#587)
253
+ - Fix enumeration memory leaks (#592) (#594) (#606) (#610) (#626)
254
+ - Don't allow `Image#class_type` to be set to undefined (#599)
255
+ - Fixed setting the name of the clip path. (#608)
256
+ - Fix memory leak in `Info#view=` (#642)
257
+ - Fix memory leak in `Image.constitute` (#665)
258
+ - Raise error on invalid arguments in `Draw#bezier` (#674)
259
+ - Fix memory leak in `Image#sparse_color` (#683)
260
+ - Prevent negative values for `Image#convolve` (#679)
261
+ - Several cleanups and fixes in the examples
262
+ - Raise error on invalid arguments in `Draw#color` (#691)
263
+ - Raise error on invalid arguments in `Draw#opacity` (#692)
264
+ - Raise error on invalid arguments in `Draw#fill_opacity` (#693)
265
+ - Raise error on invalid arguments in `Draw#stroke_opacity` (#694)
266
+ - Raise error on invalid arguments in `Draw#font_weight` (#696)
267
+ - Raise error on invalid arguments in `Draw#pattern` (#702)
268
+ - Raise error on invalid arguments in `Draw#point` (#703)
269
+ - Raise error on invalid arguments in `Draw#font_size` (#704)
270
+ - Raise error on invalid arguments in `Draw#polygon` (#705)
271
+ - Raise error on invalid arguments in `Draw#polyline` (#706)
272
+ - Raise error on invalid arguments in `Draw#rotate` (#707)
273
+ - Raise error on invalid arguments in `Draw#scale` (#708)
274
+ - Raise error on invalid arguments in `Draw#stroke_dashoffset` (#710)
275
+ - Raise error on invalid arguments in `Draw#translate` (#713)
276
+ - Raise error on invalid arguments in `Draw#text` (#714)
277
+ - Raise error on invalid arguments in `Draw#stroke` (#715)
278
+ - Raise error on invalid arguments in `Draw#matte` (#716)
279
+ - Raise error on invalid arguments in `Draw#skewx`, `Draw#skewy` (#719)
280
+ - Fix `Image#thumbnail` to keep image aspect ratio like ImageMagick (#718)
281
+ - Fix bug where `ImageList#montage` doesn't apply `border_color` & `matte_color` (#601)
282
+ - Fix stack-buffer-overflow in `Draw#annotate` (#725)
283
+ - Enable managed memory feature (#697)
284
+
285
+ Code Quality:
286
+
287
+ - Many tests written
288
+ - Several fixes to reduce compiler warnings.
289
+
290
+ ## RMagick 3.1.0
291
+
292
+ Deprecations: (To be removed in RMagick 4.0)
293
+
294
+ - Support for Ruby 2.3
295
+ - `KernelInfo#zero_nans` (#531) (no replacement)
296
+ - `KernelInfo#show` (#532) (no replacement)
297
+ - `ImageList#fx` (#529) (use `Image#fx` instead)
298
+ - `Image#alpha=` (#530) (use `Image#alpha` instead)
299
+ - `Image#mask=` (#530) (use `Image#mask` instead)
300
+ - `Image#matte` (#530) (use `Image#alpha` instead)
301
+ - `Image#matte=` (#530) (use `Image#alpha` instead)
302
+
303
+ Enhancements:
304
+
305
+ - Support ruby-mswin environment on Windows (#425)
306
+ - Add test for supporting webp format (#406)
307
+ - Add explicit Ruby 2.5 support (#339)
308
+ - Add explicit Ruby 2.6 support (#467)
309
+ - Restore support for ImageMagick 6.7 (#475)
310
+ - Add explicit ImageMagick 6.9 support (#340)
311
+ - Work towards ImageMagick 7.0 support (#470) (#487) (#489) (#492) (#494)
312
+ - Improve error messaging (#480) (#517)
313
+ - Add TimeResource support (#402)
314
+ - Add Image#fx method (#529)
315
+
316
+ Bug Fixes:
317
+
318
+ - Many, many memory leaks fixed
319
+ (#362) (#361) (#360) (#359) (#358) (#357) (#367) (#370) (#364) (#372) (#373)
320
+ (#374) (#375) (#376) (#385) (#384) (#383) (#382) (#381) (#380) (#379) (#378)
321
+ (#377) (#391) (#390) (#389) (#396) (#401) (#409) (#419) (#417) (#416) (#415)
322
+ (#414) (#413) (#412) (#411) (#410) (#418) (#454) (#453) (#452) (#451) (#450)
323
+ (#461) (#460) (#459) (#563)
324
+ - Fix SEGV in ImageList methods with invalid image list (#356)
325
+ - Fix SEGV in Image#recolor (#387)
326
+ - Fix SEGV in Image#profile! (#400)
327
+ - Fix build error on Homebrew environment (#426)
328
+ - Fix Image#quantize and ImageList#quantize could not make dither false (#458)
329
+ - Replace obsoleted $defout to $stdout (#463)
330
+ - Avoid SEGV in monitor feature for Ruby 2.5+ (#462)
331
+ - Fix SEGV in Image#write with CMYKColorspace (#465)
332
+ - Avoid problems related to GC in monitor feature (#468)
333
+ - Get rid of compiler warnings (#484) (#491) (#500)
334
+ - Fix rmfill leaks (#528)
335
+ - Removed automatic allocation of the ImageInfo that is broken. (#547)
336
+ - Fix color histogram (#540)
337
+ - Fix Image#iptc_profile does not work with ImageMagick 6.7 (#558)
338
+
339
+ Code Quality:
340
+
341
+ - Many tests written
342
+ - CI improvements
343
+ - Other refactors
344
+
345
+ ## RMagick 3.0.0
346
+
347
+ Breaking Changes:
348
+
349
+ - Drop support for Ruby < 2.3.
350
+ - Drop support for ImageMagick < 6.8.
351
+ - Raise error when `nil` or empty string are passed to `Image.read`. (#351)
352
+ - Monitor feature disabled on Windows. (#344)
353
+ - Note: ruby versions > 2.4 and ImageMagick versions > 6.8 are not *explicitly*
354
+ supported, yet, but if you are using them already, they should continue to
355
+ work in the same fashion.
356
+
357
+ Enhancements:
358
+
359
+ - Add feature `Image#channel_entropy` (#300)
360
+ - Many quality of life improvements in the codebase.
361
+
362
+ Bug Fixes:
363
+
364
+ - Many memory leaks fixed!
365
+ - Fix `LoadError` on Windows. (#315)
366
+ - fix argument count in `Image#morphology_channel` (#306)
367
+
368
+ ## RMagick 2.16.0
369
+
370
+ - Support ImageMagick 6.9+ - @ZipoKing
371
+
372
+ ## RMagick 2.15.4
373
+
374
+ - Improved C extension building process - @u338steven
375
+
376
+ ## RMagick 2.15.3
377
+
378
+ - Fixed ImageMagick version detection on Windows - @maisumakun
379
+
380
+ ## RMagick 2.15.2
381
+
382
+ - GitHub repository moved back to github.com/rmagick/rmagick - @wurde, @vassilevsky
383
+
384
+ ## RMagick 2.15.1
385
+
386
+ - Fix loop in linked list in `ImageList` methods => they no longer hang - @u338steven
387
+
388
+ ## RMagick 2.15.0
389
+
390
+ - Ability to remove alpha channel - @ollie
391
+ - C local variables guarded against GC to avoid segfaults - @u338steven
392
+ - trace_proc protected with a mutex to avoid segfaults - @u338steven
393
+
394
+ ## RMagick 2.14.0
395
+
396
+ - `RMagick.rb` moved to deprecated directory - @mockdeep
397
+ - Better ImageMagick feature detection - @bf4
398
+ - Prevent compilation failures if prefix is an empty string - @voxik
399
+ - `SplineInterpolatePixel` preprocessor check removed - @joshk
400
+ - Make error format a string literal - @mtasaka
401
+ - Automatically set `ARCHFLAGS` on OS X - @u338steven
402
+ - Fixed `rmagick/version` require failure - @u338steven
403
+ - Fixed escaping of `%` in `Draw#get_type_metrics` - @mkluczny
404
+ - Silence warnings on Ruby 2.2 when comparing Enums - @meanphil
405
+ - Multiple test suite improvements - @mockdeep, @bf4
406
+ - Ruby source code formatting with RuboCop - @vassilevsky
407
+
408
+ ## RMagick 2.13.4
409
+
410
+ - Proof of concept for using `pkg-config` in place of `Magick-config` on debian based systems (#129) - @theschoolmaster
411
+ - Changed `Image#resample` to calling `ResampleImage` (#127, related #29, #45) - @u338steven
412
+ - Fixed #122: `lib/RMagick.rb` is overwritten by `lib/rmagick.rb` on case-insensitive systems (#124) - @u338steven
413
+ - New class `SolidFill` in order to fill image with monochromatic background (#123) - @prijutme4ty
414
+ - Quotes for correct path of font file (#121) - @markotom
415
+ - Allow `MagickCore6` from `Magick-config` (#120) - @chulkilee
416
+ - Fixed: build error with ImageMagick 6.8.9 (when deprecated functions are excluded) (#112) - @u338steven
417
+ - Fixed: related x_resolution, y_resolution (#102) - @u338steven
418
+ - Lots of test fixes - @u338steven
419
+ - Fix pixel hash test (#95) - @ioquatix
420
+ - Fixed: build error on Windows Ruby x64 (with ImageMagick 6.8.0-10 / ImageMagick 6.8.7-7) (#94) - @u338steven
421
+
422
+ ## RMagick 2.13.3
423
+
424
+ - Fix installation error on systems with HRDI enabled RMagick (#90) - @bricef
425
+
426
+ ## RMagick 2.13.2
427
+
428
+ - Fixed issues preventing RMagick from working with version 6.8 or higher
429
+ - Fixed issues preventing RMagick from working with ruby 1.9.3
430
+
431
+ ## RMagick 2.13.1
432
+
433
+ - Fixed bug preventing RMagick from working with version 6.5.9 or higher
434
+
435
+ ## RMagick 2.13.0
436
+
437
+ - Added Doxygen documentation, for automatic documentation
438
+ - Fixed bug #27467, get RMagick to compile witH ImageMagick 6.5.7
439
+ - Fixed bug #27607, switch `Pixel#from_hsla` and `Pixel#to_hsla` to use ranges
440
+ 0-255 instead of 0-100 for saturation and lightness (range used by
441
+ ImageMagick 6.5.6-5 and higher). Also added ability to specify all
442
+ arguments to these functions as percentages (bug report by Arthur Chan).
443
+
444
+
445
+ ## RMagick 2.12.2
446
+
447
+ - Add feature tests for `SinusoidFunction` and `PolynomialFunction` enum
448
+ values to allow compiling with ImageMagick 6.4.8-7 (bug report by Mark
449
+ Richman)
450
+
451
+ ## RMagick 2.12.1
452
+
453
+ - Fix bug #27239, allow 2.12.0 to compile with older releases of ImageMagick
454
+ (bug report by Sam Lown)
455
+
456
+ ## RMagick 2.12.0
457
+
458
+ - Added `Image#function_channel` (available in ImageMagick 6.4.8-8)
459
+ - Added `Image#auto_level_channel`, `Image#auto_gamma_channel` (available in
460
+ ImageMagick 6.5.5-1)
461
+ - Added `Draw#interline_spacing`, `#interline_spacing=` (available in
462
+ ImageMagick 6.5.5-8)
463
+
464
+ ## RMagick 2.11.1
465
+
466
+ - Applied Alexey Borzenkov's mingw patches to `extconf.rb`.
467
+ - Fixed a bug in `Magick.trace_proc` that could cause a segv at program exit
468
+ with Ruby 1.9.1 (bug report by Larry Young)
469
+ - Added new `CompressionType` enum values `ZipSCompression`, `PixCompression`,
470
+ `Pxr24Compression`, `B44Compression`, `B44ACompression` (available in
471
+ ImageMagick 6.5.5-4)
472
+
473
+ ## RMagick 2.11.0
474
+
475
+ - Fix bug #26475, dissolve and watermark don't work with new versions of
476
+ ImageMagick (reported by Jim Crate)
477
+ - Add `Image#composite_mathematics` (available in ImageMagick 6.5.4-3)
478
+ - Add new `LinearDodgeCompositeOp`, `LinearBurnCompositeOp`,
479
+ `PegtopCompositeOp`, `PinLightCompositeOp`, `VividLightCompositeOp` enum values
480
+ (available in ImageMagick 6.5.4-3)
481
+
482
+ ## RMagick 2.10.0
483
+
484
+ - ImageMagick releases earlier than 6.3.5-10 and Ruby releases earlier
485
+ than 1.8.5 no longer supported.
486
+ - (Experimental) Support the use of Ruby managed memory for all memory
487
+ allocations (available in ImageMagick 6.5.3-10)
488
+ - Add `Image#selective_blur_channel` (available in ImageMagick 6.5.0-3)
489
+ - Add new `AlphaBackgroundChannel` enum value (available in ImageMagick
490
+ 6.5.2-5)
491
+ - Add new `DistortCompositeOp` enum value (available in ImageMagick 6.5.3-7)
492
+
493
+ ## RMagick 2.9.2
494
+
495
+ - Add new `HorizontalTileEdgeVirtualPixelMethod`,
496
+ `VerticalTileEdgeVirtualPixelMethod`, `CheckerTileVirtualPixelMethod`
497
+ `VirtualPixelMethod` enum values (available in ImageMagick 6.5.0-1)
498
+ - Added `BilinearForwardDistortion`, `BilinearReverseDistortion` enums
499
+ (available in ImageMagick 6.5.1-2)
500
+ - Add missing composite operators to `Magick::Draw#composite` method
501
+ - Add warning about dropping support for ImageMagick < 6.3.5 and
502
+ Ruby < 1.8.5
503
+ - Fix bug #25892, stack buffer overflow in `Magick::TypeMetric.to_s`
504
+ (reported by Roman Simecek)
505
+
506
+ ## RMagick 2.9.1
507
+
508
+ - Fix a bug that prevents the use of transparent background colors when
509
+ built with ImageMagick 6.4.9-0
510
+
511
+ ## RMagick 2.9.0
512
+
513
+ - Fix #23209, improve RVG's letter spacing (patch from Jonah Fox)
514
+ - Add `Draw#kerning=` attribute (available in ImageMagick 6.4.7-8)
515
+ - Add `Draw#interword_spacing=` attribute (available in ImageMagick
516
+ 6.4.8-0)
517
+ - Add `Draw#kerning`, `Draw#interword_spacing` primitive methods (available in
518
+ ImageMagick 6.4.8-3)
519
+ - Feature #23171, support `ImageList`, `Draw`, `Pixel` marshaling.
520
+ - Support all the new `EvaluateOperator` constants
521
+
522
+ ## RMagick 2.8.0
523
+
524
+ - Add the `endian`, `scene`, and `transparent_color` attributes to `Image::Info`
525
+ - Deprecate `Image#endian=` attribute setter
526
+ - Add the `transparent_chroma` method to the `Image` class (available in
527
+ ImageMagick 6.4.5-6)
528
+ - Add the `sparse_color` method to the `Image` class (available in ImageMagick
529
+ 6.4.3)
530
+ - Update `Image#change_geometry` to work with the new `ParseSizeGeometry` API
531
+ in ImageMagick 6.4.6-9.
532
+
533
+ ## RMagick 2.7.2
534
+
535
+ - Fix bug #22740, some `Image::Info` attribute values are not propogated to
536
+ the image object (bug report by Thomas Watson)
537
+
538
+ ## RMagick 2.7.1
539
+
540
+ - Fix bug #22471, `Magick::fonts` can abend on 64-bit systems (bug report and
541
+ patch by James Le Cuirot)
542
+ - `ImageList.new` accepts a block which is passed on to `Image::read` when
543
+ reading the input images. The block is executed in the context of an
544
+ `Image::Info` object.
545
+ - Add support for the "user" image property.
546
+ - Define the `Magick::FatalImageMagickError` exception class, raised if
547
+ ImageMagick raises a fatal (unrecoverable) exception.
548
+ - Added feature #22618, `Image#total_ink_density` (request by F. Behrens)
549
+
550
+ ## RMagick 2.7.0
551
+
552
+ - Fix bug #22152, `extconf.rb` does not respect the `LDFLAGS` environment
553
+ variable (bug report by Joseph Sokol-Margolis)
554
+ - Fix bug #22190, the `NoDitherMethod` enum value is not defined in
555
+ ImageMagick 6.4.2
556
+ - Add the `TrimBoundsLayer` `ImageLayerMethod` enum value (available in
557
+ ImageMagick 6.4.3-8)
558
+ - Add the `CopyAlphaChannel`, `ExtractAlphaChannel`, `OpaqueAlphaChannel`,
559
+ `ShapeAlphaChannel`, and `TransparentAlphaChannel` `AlphaChannelType` enum
560
+ values (available in ImageMagick 6.4.3-7)
561
+ - Rename `Image#affinity` and `ImageList#affinity` to `Image#remap` and
562
+ `ImageList#remap`. Retain the old names as aliases. (Changed in ImageMagick
563
+ 6.4.4-0)
564
+
565
+ ## RMagick 2.6.0
566
+
567
+ - Fix bug #21237, `Image::write` ignores format attribute when called with a
568
+ `Tempfile` pathname (bug report by Jack Shedd)
569
+ - Fix bug #21897, `ImageList#from_blob` abends when certain corrupt JPEG
570
+ images are used (bug report by Peter Szabo)
571
+ - Add `Image#composite_tiled`, `Image#composite_tiled!` (ref:
572
+ http://rubyforge.org/forum/forum.php?thread_id=27347&forum_id=33)
573
+ - Add `Image#deskew` (available with ImageMagick 6.4.2-5)
574
+ - Add `Image#define`, `Image#undefine` (available in ImageMagick 6.3.6)
575
+ - Add `Image#level_colors` (available in ImageMagick 6.4.2-1)
576
+ - Add `Image#levelize_channel` (available in ImageMagick 6.4.2-1)
577
+ - Add `Image#affinity`, `ImageList#affinity` (available in ImageMagick 6.4.3-6).
578
+ These methods replace `Image#map` and `ImageList#map`.
579
+ - Accept `DitherMethod` values for the `dither` argument to `Image#quantize`,
580
+ `ImageList#quantize`
581
+ - Add the `BarrelDistortion`, `PolynomialDistortion`, `ShepardsDistortion`,
582
+ `PolarDistortion`, and `DePolarDistortion` `MagickDistortion` Method enum values
583
+ (available in ImageMagick 6.4.2-6)
584
+ - Add the `HorizontalTileVirtualPixelMethod` and
585
+ `VerticalTileVirtualPixelMethod` `VirtualPixelMethod` enum values
586
+ (available in ImageMagick 6.4.2-6)
587
+ - Add `DitherMethod` enum class
588
+ - Added general-purpose `OptionalMethodArguments` class to handle ad-hoc
589
+ optional arguments.
590
+ - Support optional "distort:viewport" and "distort:scale" arguments to
591
+ `Image#distort`
592
+ - Support optional `highlight_color` and `lowlight_color` arguments
593
+ to `Image#compare_channel`
594
+
595
+ ## RMagick 2.5.2
596
+
597
+ - Add support for `MergeLayer` to `Magick::ImageList#optimize_layers` (patch
598
+ #21189, submitted by Andrew Watson)
599
+ - Add `PowQuantumOperator` argument for `Image#quantum_operator` (available
600
+ in ImageMagick 6.4.1-9)
601
+
602
+ ## RMagick 2.5.1
603
+
604
+ - Update `Pixel#to_color` to work with the new `QueryMagickColorname` API in
605
+ ImageMagick 6.4.1-9.
606
+
607
+ ## RMagick 2.5.0
608
+
609
+ - Added `Image#add_compose_mask`, `#delete_compose_mask` (feature #20531)
610
+
611
+ ## RMagick 2.4.0
612
+
613
+ - Added `Image#image_type=` (feature #20490)
614
+
615
+ ## RMagick 2.3.0
616
+
617
+ - Added `Image#encipher`, `Image#decipher` (available with ImageMagick 6.3.8-6)
618
+ - Added `DXT1Compression`, `DXT3Compression`, and `DXT5Compression`
619
+ `CompressionType` enums (available in ImageMagick 6.3.9-4)
620
+ - Added optional "use hex format" argument to `Pixel#to_color`
621
+ - Support `:area` resource type in `Magick.limit_resource`
622
+ - `Pixel.from_HSL` and `Pixel#to_HSL` are deprecated. Use `Pixel.from_hsla`
623
+ and `Pixel#to_hsla` instead. The new methods rely on the ImageMagick 6.3.5
624
+ and later API.
625
+ - The `Image#alpha` and `alpha=` attributes are deprecated. Use `alpha()` and
626
+ `alpha?` instead.
627
+ - The `Image#mask=` attribute is deprecated. Use `mask()` instead.
628
+ - The use of Ruby older than version 1.8.4 with RMagick is deprecated and
629
+ will not be supported in a future release.
630
+ - Fix bug #18271, rvg width and height attributes wrong after a call to
631
+ viewbox (reported by Greg Jarman)
632
+
633
+ ## RMagick 2.2.2
634
+
635
+ - Fix bug #18016, add test for `InitializeMagick` in `libMagickCore` to
636
+ `extconf.rb`
637
+
638
+ ## RMagick 2.2.0
639
+
640
+ - Added `Image#opaque_channel`, `Image#paint_transparent` (available with
641
+ ImageMagick 6.3.7-10)
642
+ - Added `Image#liquid_rescale` (available with ImageMagick 6.3.8-2)
643
+ - Added `CMYColorspace` `ColorspaceType` value
644
+ - Fixed bug #17148, compiler error message on Solaris (bug report by Trever
645
+ Wennblom)
646
+ - Fixed bug #17470, `get_exif_by_number`, `get_exif_by_entry` may fail when
647
+ called with one or more arguments
648
+
649
+ ## RMagick 2.1.0
650
+
651
+ - Added `Image::Info#caption=` attribute
652
+ - Rename `Image#crop_resized`, `#crop_resized!` to `#resize_to_fill`,
653
+ `#resize_to_fill!`. Add aliases for the old names.
654
+ - Fix bug #16776, in the `axes.rb` example the last 2 arguments to
655
+ `border.rectangle` are swapped (bug report by Alain Feler)
656
+ - Fix bug #16931, apostrophe in #error directive causes error in some
657
+ versions of GCC (bug report by Justin Dossey)
658
+
659
+ ## RMagick 2.0.0
660
+
661
+ - Replaced `configure`/`make`/`make install` with standard Ruby `setup.rb`,
662
+ `extconf.rb`
663
+ - Removed support for Ruby earlier than 1.8.2
664
+ - Removed support for GraphicsMagick. As a result these methods are no
665
+ longer available: `Image#grayscale_pseudo_class`, `Image#statistics`.
666
+ - Removed support for all releases of ImageMagick earlier than 6.3.0.
667
+ - Removed deprecated `Image#random_channel_threshold`. Use
668
+ `Image#random_threshold_channel` instead
669
+ - Removed deprecated `Image#channel_threshold`. Use
670
+ `Image#random_threshold_channel` instead
671
+ - Removed unecessary `Image#montage=`
672
+ - Removed unecessary and undocumented `Image#image_type=`
673
+ - Removed deprecated `Image::Info#tile_info`, `tile_info=` attributes.
674
+ - Removed deprecated `Image::Info#tile`, `tile=` attributes. Use `#extract`,
675
+ `#extract=` instead
676
+ - Removed deprecated `Image::Info#subimage`, `subimage=` attributes. Use
677
+ `scene`, `scene=` instead
678
+ - Removed deprecated `Image::Info#subrange`, `subrange=` attributes. Use
679
+ `number_scenes`, `number_scenes=` instead
680
+ - Removed deprecated `Magick.set_monitor`. Use `Image#set_monitor`,
681
+ `Image::Info#set_monitor` instead
682
+ - Removed deprecated `RunlengthEncodedCompression` `CompressionType`. Use
683
+ `RLECompression` instead
684
+ - Deprecated `Image#matte`, `matte=` with ImageMagick 6.3.5 and later
685
+ - Added `Image::Info#stroke=`, `stroke_width=` and `undercolor=` attributes
686
+ - Added `Image::Info#tile_offset=` attribute
687
+ - Added `Draw#fill_pattern=` and `#stroke_pattern=` annotate attributes
688
+ - Changed `Image::Info[]` and `Image::Info[]=` to allow an omitted "format"
689
+ argument
690
+ - Added `Image#destroy!`, `destroyed?`, `check_destroyed` methods
691
+ - Support `Image` object creation/destruction tracing with the
692
+ `Magick.trace_proc` attribute
693
+ - Added `Magick::QuantumRange`. `Magick::MaxRGB` is deprecated.
694
+ - Added `OptimizeTransLayer`, `RemoveDupsLayer`, `RemoveZeroLayer`,
695
+ `OptimizeImageLayer` `ImageLayerMethods` enum values (available with
696
+ ImageMagick 6.3.3),
697
+ `MosaicLayer`, `FlattenLayer` (available with ImageMagick 6.3.6)
698
+ - RMagick works with Q32 version of ImageMagick
699
+ - Added `ChangeMaskCompositeOp`, `DivideCompositeOp`, `LinearLightCompositeOp`
700
+ `CompositeOperator` enum values
701
+ - Added `SplineInterpolatePixel` `InterpolatePixelMethod` enum value
702
+ - Added `DitherVirtualPixelMethod`, `RandomVirtualPixelMethod`,
703
+ `BlackVirtualPixelMethod`, `GrayVirtualPixelMethod`, `WhiteVirtualPixelMethod`
704
+ (available with ImageMagick 6.3.5), and `MaskVirtualPixelMethod` (available
705
+ with ImageMagick 6.3.3) `VirtualPixelMethod` enum values
706
+ - Added `GIFInterlace`, `JPEGInterlace`, `PNGInterlace` `Interlace` type enum
707
+ values (available with ImageMagick 6.3.4)
708
+ - Added `SentinelFilter` `FilterTypes` enum value (available in ImageMagick
709
+ 6.3.6)
710
+ - Added `Image.combine`
711
+ - Added `Image#separate` (available with ImageMagick 6.3.2)
712
+ - Added `Image#distort` (available with ImageMagick 6.3.5)
713
+ - Added `Image#each_pixel` (thanks to Russell Norris for the suggestion and
714
+ code)
715
+ - Added `Image#histogram?` (available with ImageMagick 6.3.5)
716
+ - Added `Image#sync_profiles` (available with ImageMagick 6.3.2)
717
+ - Added `Image#extent` (available with ImageMagick 6.3.1)
718
+ - Added `Image#excerpt`, `Image#excerpt!` (available with ImageMagick 6.3.5)
719
+ - Added `Image::Info#attenuate`
720
+ - Added `Image#clut_channel` (available with ImageMagick 6.3.5)
721
+ - Feature Request #16264, added `ImageList#composite_layers` (available with
722
+ ImageMagick 6.3.3, request from Steve Martocci)
723
+ - Added `Image#alpha=` (available with ImageMagick 6.3.5)
724
+ - Added `Image#gravity=`
725
+ - Added `Image#equalize_channel` (available with ImageMagick 6.3.6)
726
+ - Added new `FilterTypes` values `KaiserFilter`, `WelshFilter`, `ParzenFilter`,
727
+ `LagrangeFilter`, `BohmanFilter`, `BartlettFilter` (available with ImageMagick
728
+ 6.3.6)
729
+ - Fix bug #10339, `Image#trim` does not support "reset page information
730
+ option" (bug report from Nobody)
731
+ - Renamed `RMagick.so` to `RMagick2.so` to prevent confusion between `RMagick.rb`
732
+ and `RMagick.so`
733
+ - Feature Request #16276, re-organize doc to not split `Image` method pages
734
+ in the middle of an initial letter (request from Roy Leban)
735
+ - Updated for ImageMagick 6.3.7-5
736
+ - Made changes as necessary to work with current Ruby 1.9.0
737
+
738
+ ## RMagick 1.15.12
739
+
740
+ - Fix bug #16221, starting with ImageMagick 6.3.2, get_exif_by_entry/number
741
+ returns empty array/hash when no arguments are specified, even though the
742
+ image has EXIF data (bug report from Paul Clegg)
743
+
744
+ ## RMagick 1.15.11
745
+
746
+ - Fix bug #15887, the x_ and y_resolution attributes don't respect the units
747
+ attribute (bug report from Ben Greenburg)
748
+ - Fix bug #15889, memory leak in Draw#composite method (bug report from Till
749
+ Vollmer)
750
+
751
+ ## RMagick 1.15.10
752
+
753
+ - Update Magick::Pixel.from_HSL, #to_HSL to work with new APIs in
754
+ ImageMagick 6.3.5-9.
755
+
756
+ ## RMagick 1.15.9
757
+
758
+ - Fixed bug #12089 (bug report from Hans de Graaff)
759
+
760
+ ## RMagick 1.15.8
761
+
762
+ - Fixed bug #12671, incorrect link in HTML doc (bug report from Thomas R.
763
+ Koll
764
+ - Fixed bug #11890, incorrect usage description for Draw#text_undercolor in
765
+ HTML doc (bug report from Ezra Freedman)
766
+ - Fixed bug #12706, specifying both a gravity and offsets to Image#composite
767
+ positions the composite image incorrectly (bug report from Benoit Larroque)
768
+
769
+ ## RMagick 1.15.7
770
+
771
+ - Fix bug #11033, make distclean misses some files (bug report from Lucas
772
+ Nussbaum)
773
+ - Work around SetMagickRegistry problem in ImageMagick 6.3.4-7
774
+
775
+ ## RMagick 1.15.6
776
+
777
+ - Fix bug #10070, memory leak in Draw#get_type_metrics,
778
+ Draw#get_multiline_type_metrics, Draw#annotate (bug report from Sinclair
779
+ Bain)
780
+ - Fix bug #10080, scripts in examples directory should not be marked
781
+ executable (bug report from Lucas Nussbaum)
782
+
783
+ ## RMagick 1.15.5
784
+
785
+ - Fix bug #9637, export_pixels always exports all 0's for 1-bit images (bug
786
+ report from Doug Patterson)
787
+
788
+ ## RMagick 1.15.4
789
+
790
+ - Fix bug #8927, RMagick and rbgsl both export the name ID_call (bug report
791
+ from Shin Enomoto)
792
+
793
+ ## RMagick 1.15.3
794
+
795
+ - Fix bug #8697, Image::Info.fill= doesn't work when creating "caption:"
796
+ format images (bug report from choonkeat)
797
+
798
+ ## RMagick 1.15.2
799
+
800
+ - Fix bug #8408, a compatibility problem with some versions of ImageMagick
801
+ before 6.2.5 (bug report from Geir Gluckstad)
802
+
803
+ ## RMagick 1.15.1
804
+
805
+ - Fix bug #8307, compatibility problems with older (6.0.x) versions of
806
+ ImageMagick (bug report from Chris Taggart)
807
+
808
+ ## RMagick 1.15.0
809
+
810
+ - Added fx method to ImageList class
811
+ - Added wet_floor method to the Image class
812
+ - Added linear_stretch method to the Image class (available with
813
+ ImageMagick 6.3.1-1)
814
+ - Added recolor method to the Image class (available with ImageMagick 6.3.1-3)
815
+ - Added polaroid method to the Image class (available with ImageMagick 6.3.1-6)
816
+ - Added origin attribute to the Image::Info class (supported by
817
+ ImageMagick 6.3.1-4 and later)
818
+ - Added PaletteBilevelMatteType to the ImageType enum
819
+ - Fix bug #6260, some RVG examples produce all-black GIF images
820
+ - Fix bug #7034, fix the matte method in the Draw class
821
+ - Fix bug #7373, default channels should be RGB instead of RGBA
822
+ - Fix bug #7716, Pixel#intensity wrong for gray images (bug report from
823
+ Morio Miki)
824
+ - Fix bug #7949, Magick::Draw.new abends when an exception occurs before
825
+ the draw object is fully initialized (bug report from Andrew Kaspick)
826
+ - Fix bug #8015, Magick::Draw.new doesn't call the optional arguments block
827
+ in the right scope (bug report from Andrew Kaspick)
828
+ - Tested with ImageMagick 6.3.2-0
829
+
830
+ ## RMagick 1.14.1
831
+
832
+ - Handle change to the type of the ColorInfo.color field introduced by
833
+ ImageMagick 6.3.0
834
+
835
+ ## RMagick 1.14.0
836
+
837
+ - Feature request #5015, support CMYK->RGB conversions. Added the
838
+ add_profile and delete_profiles to the Image class. Fixed the profile!,
839
+ iptc_profile, and color_profile methods. Added the
840
+ black_point_compensation attribute. (requested by Niklas Ekman)
841
+ - Added adaptive_blur, adaptive_blur_channel, find_similar_region, sketch
842
+ methods to the Image class (available with ImageMagick 6.2.8-6)
843
+ - Added adaptive_resize to the Image class (available with
844
+ ImageMagick 6.2.9)
845
+ - Added resample method to the Image class (thanks to Ant Peacocke for the
846
+ idea)
847
+ - Added four new compositing methods to the Image class: blend, displace,
848
+ dissolve, and watermark
849
+ - Feature request #5418, add get_iptc_dataset and each_iptc_dataset to the
850
+ Image class (requested by Oliver Andrich)
851
+ - Added the bias and mask attributes to the Image class
852
+ - Added optional qualifier argument to Image#rotate
853
+ - Patch #5742 from Douglas Sellers, adds channel method to the Image::Info
854
+ class.
855
+ - Added new ChannelType enum values
856
+ - Added texture= attribute writer to the Image::Info class
857
+ - Added tile= attribute writer to the Draw class
858
+ - Added pixel_interpolation_method attribute, InterpolatePixelMethod enum
859
+ class to the Image class (available with ImageMagick 6.2.9)
860
+ - Added "Magick Command Options and Their Equivalent Methods" page to the
861
+ documentation
862
+ - Fix bug #5079, Image#quantum_operator method doesn't work (bug report
863
+ from Pedro Martins)
864
+ - Fix bug #5080, incorrect RVG images when non-0 values used for the min_x
865
+ or min_y arguments to RVG#viewbox (bug report from Daniel Harple)
866
+ - Fix bug #5370, the clip_mask= attribute doesn't work
867
+ - Fix bug #5506, wrong argument used to intialize AffineMatrix (bug
868
+ report from Michael Shantzis)
869
+
870
+ ## RMagick 1.13.0
871
+
872
+ - Added transform, transform!, transpose, transpose! methods to Image class
873
+ (available with ImageMagick 6.2.8)
874
+ - Feature #4844, add auto_orient, auto_orient! methods to Image class
875
+ (suggestion from John Oordopjes, available with ImageMagick 6.2.8)
876
+ - Added adaptive_sharpen, adaptive_sharpen_channel methods to Image class
877
+ (available with ImageMagick 6.2.7)
878
+ - Added composite_image_channel, composite_image_channel! methods to Image
879
+ class (added in ImageMagick 6.2.6)
880
+ - Added radial_blur_channel method to Image class (available in
881
+ ImageMagick 6.2.4)
882
+ - Fix bug #4806, add hash, eql? methods to Pixel class (bug report from
883
+ Tim Pease)
884
+ - Change extension filename to match RubyGems 0.9.0 expectations.
885
+ - Fix bug #4821, correct doc for Image#rotate (bug report from Tim Pease)
886
+ - Update the Draw#annotate documentation
887
+
888
+ ## RMagick 1.12.0
889
+
890
+ - Fix bug #4630, the new signature for #level is incompatible with
891
+ releases prior to 1.10.1 (bug report from Al Evans)
892
+
893
+ ## RMagick 1.11.1
894
+
895
+ - Fix bug #4511, add Makefile, rmagick_config.h as dependencies
896
+ in the Makefile (bug report from Eric Hodel)
897
+ - Ensure ExceptionInfo structures are freed
898
+
899
+ ## RMagick 1.11.0
900
+
901
+ - Feature #3705, add resize_to_fit (thanks to Robert Manni for the code)
902
+ - Added optimize_layers method to the ImageList class (available with
903
+ ImageMagick 6.2.6)
904
+ - Added limit_resource method to the Magick module
905
+ - Replaced install.rb with setup.rb, improved gem install
906
+ (bug report from Ryan Davis)
907
+ - Added --disable-htmldoc option to setup.rb
908
+ - Fix bug #4104, incorrect label on example (reported by Jason Lee)
909
+ - Added contrast_stretch_channel to the Image class (available with
910
+ ImageMagick 6.2.6)
911
+ - Improved Magick exception handling to eliminate memory leaks when an exception
912
+ is rescued and execution continues.
913
+ - Tested with ImageMagick 6.2.7
914
+
915
+ ## RMagick 1.10.1
916
+
917
+ - Fix bug #3437, memory leak in ImageList#to_blob
918
+ - Fix bug #3363, Image#composite doesn't work when the source image
919
+ is bigger than the destination
920
+ - Fix bug #3635, Image#import_pixels doesn't accept FloatPixel or DoublePixel
921
+ storage types
922
+ - Feature #3597, add border_color attribute to the Draw class
923
+
924
+ ## RMagick 1.10.0
925
+
926
+ - Added add_noise_channel method to Image class (available with ImageMagick 6.2.5)
927
+ - Added vignette method to the Image class (available with ImageMagick 6.2.6)
928
+ - Added crop_resize method to the Image class (thanks to Jerret Taylor for
929
+ the suggestion and original code)
930
+ - Added export_pixels_to_str method to the Image class
931
+ - Provided default arguments to Image#export_pixels
932
+ - Added "order" option to Image#ordered_dither
933
+ - Added cyan, magenta, yellow, and black attribute accessors to the Pixel class
934
+ - Added CineonLogRGBColorspace, LABColorspace, Rec601LumaColorspace,
935
+ Rec601YCbCrColorspace, Rec709LumaColorspace, Rec709YCbCrColorspace,
936
+ LogColorspace enumerators to the ColorspaceType enumeration class.
937
+ - Fixed bug #2844, Image#to_blob exits if the image is a 0x0 JPEG
938
+ - Fixed bug #2688, Image#annotate, Draw#get_multiline_type_metrics handle
939
+ newline characters properly
940
+ - Tested with ImageMagick 6.2.6
941
+ - Removed support for all versions of ImageMagick prior to 6.0.0
942
+
943
+ ## RMagick 1.9.3
944
+
945
+ - Feature #2521, add Image#distortion_channel method
946
+ - Fixed bug #2546, ImageList#to_blob builds multi-image blobs again. (ImageMagick 6.2.0
947
+ silently broke the ImageToBlob method.) Thanks to Tom Werner for reporting this bug.
948
+ - Test with GraphicsMagick 1.1.7
949
+
950
+ ## RMagick 1.9.2
951
+
952
+ - Feature #2412, add the virtual_pixel_method attribute and the VirtualPixelMethod
953
+ enumeration
954
+ - Feature #2462, add the ticks_per_second attribute
955
+
956
+ ## RMagick 1.9.1
957
+
958
+ - Fixed bug #2157, Image#total_colors is now an alias of Image#number_colors
959
+ - Fixed bug #2155, Image#dispose= now accepts a DisposeType enum, #dispose
960
+ now returns a DisposeType enum.
961
+ - Fixed bug #2156, Image#properties no longer returns garbage for the property
962
+ name and value.
963
+ - Fixed bug #2190, Image#compose now returns a CompositeOperator
964
+ - Fixed bug #2191, Image#composite no longer abends when called with 0 arguments
965
+ - Fixed bug #2213, ImageList#montage method no longer leaves the imagelist corrupt
966
+ after raising an ImageMagickError
967
+ - Feature #2159, added GrayChannel ChannelType enum value, BlendCompositeOp and
968
+ ColorBurnCompositeOp CompositeOperator enum values, RLECompression CompressionType
969
+ enum value, deprecate RunlengthCompression
970
+ - Feature #2172, added optional argument to crop and crop! to reset the saved
971
+ page offsets after cropping
972
+ - Deprecated Image#channel_threshold. This method is deprecated in ImageMagick.
973
+ - Feature #2373, change Image#import_pixels to accept a pixel data buffer as well
974
+ as a pixel data array. (Thanks to Ara T. Howard for this suggestion!)
975
+ - Fixed to compile without errors with ImageMagick 6.2.4-4.
976
+
977
+ ## RMagick 1.9.0
978
+
979
+ - Added Image#monitor=, Image::Info#monitor=. Deprecated Magick.set_monitor.
980
+ - Fixed bug #2070, support color names with embedded spaces
981
+ - Fixed bug #2109, properly scope Magick constants in RVG
982
+
983
+ ## RMagick 1.8.3
984
+
985
+ - Tested with ImageMagick 6.2.3-2
986
+ - Added comment, delay, dispose, fill, gravity, and label attributes to
987
+ Image::Info
988
+
989
+ ## RMagick 1.8.2
990
+
991
+ - Fix bug #1983, potential buffer overflow in version_constants
992
+ - Added feature #2015, support the pointsize, authenticate,
993
+ and sampling_factor attributes in Image::Info
994
+
995
+ ## RMagick 1.8.1
996
+
997
+ - Fix bugs #1876, #1888, #1919
998
+ - Added feature #1941, RVG's polyline, polygon accept array arguments
999
+ - Numerous fixes to the RVG documentation
1000
+
1001
+ ## RMagick 1.8.0
1002
+
1003
+ - Added Image#shadow (ImageMagick 6.1.7)
1004
+ - Added Image::Info#undefine, #[], #[]=
1005
+ - Added sigmoidal_contrast_channel, sepiatone to Image class (ImageMagick 6.2.1)
1006
+ - Added JPEG2000Compression constant (ImageMagick 6.2.2)
1007
+ - Incorporated RVG classes
1008
+ - Added RVG documentation, examples, updated installer
1009
+ - Tested with ImageMagick 6.2.2-0, latest GraphicsMagick 1.2
1010
+
1011
+ ## RMagick 1.7.4
1012
+
1013
+ - Fix bug #1727
1014
+ - Fix affine_transform.rb
1015
+ - Tested with ImageMagick 6.2.1
1016
+
1017
+ ## RMagick 1.7.3
1018
+
1019
+ - Fix bug #1553, a build issue with ImageMagick 6.0.x
1020
+
1021
+ ## RMagick 1.7.2
1022
+
1023
+ - Fix bugs #1308, #1310, #1314, #1533
1024
+
1025
+ ## RMagick 1.7.1
1026
+
1027
+ - Fix bugs #1250, #1253
1028
+ - Tested with ImageMagick 6.1.7, Ruby 1.8.2
1029
+
1030
+ ## RMagick 1.7.0
1031
+
1032
+ - Added splice, set_channel_depth to Image class (ImageMagick 6.0.0)
1033
+ - Added sharpen_channel, blur_channel to Image class (ImageMagick 6.0.1)
1034
+ - Added get_multiline_type_metrics to Draw class (ImageMagick 6.1.5),
1035
+ added new example scripts and images
1036
+ - Added normalize_channel, unsharp_mask_channel to Image class
1037
+ (ImageMagick 6.1.0)
1038
+ - Added read_inline to Image class
1039
+ - Renamed channel_compare to compare_channel, retained old name as an alias
1040
+ for backward compatibility.
1041
+ - Added default values for unsharp_mask arguments
1042
+ - Fixed bug #1193
1043
+ - Fixed segfault in destroy_Draw when Ruby gc'd the temp file name
1044
+ array before calling destroy_Draw
1045
+ - Tested with ImageMagick 6.1.6, GraphicsMagick 1.1.4, Ruby 1.8.2preview3.
1046
+
1047
+ ## RMagick 1.6.2
1048
+
1049
+ - Fixed ImageList#deconstruct to return an imagelist
1050
+ - Fixed installation procedure to propagate user's CFLAGS, CPPFLAGS,
1051
+ and LDFLAGS through to the low-level Makefile
1052
+ - Fixed bugs #1048, #1127
1053
+
1054
+ ## RMagick 1.6.1
1055
+
1056
+ - Changed to match changes in ImageMagick 6.1.4 API
1057
+ - Fixed bug #950
1058
+
1059
+ ## RMagick 1.6.0
1060
+
1061
+ - Added posterize, gaussian_blur_channel, convolve_channel methods to Image class
1062
+ (ImageMagick 6.0.0)
1063
+ - Added new CompositeOperator constants (ImageMagick 6.0.0)
1064
+ - Added trim and trim! methods to Image class
1065
+ - Added each method to Enum subclasses
1066
+ - Added stroke_width= attribute to the Draw class
1067
+ - Fixed bugs #624, #642, #716, applied patch #819 (thanks to Daniel Quimper)
1068
+ - Tested with ImageMagick 6.0.5-2, GraphicsMagick 1.1.3, Ruby 1.8.2
1069
+
1070
+ ## RMagick 1.5.0
1071
+
1072
+ - Added meaningful implementations of dup and clone to the Image and Draw
1073
+ classes. Clarified the documentation.
1074
+ - Do not allow changes to frozen Image, ImageList, and Draw objects.
1075
+ - Raise TypeError if freeze method sent to Image::Info or ImageList::Montage
1076
+ object.
1077
+ - Added view method to Image, Image::View class (thanks to Ara T. Howard and
1078
+ Charles Comstock on c.l.r for the discussion which prompted me to add this class)
1079
+ - Added grayscale_pseudo_class method to Image class (GraphicsMagick 1.1)
1080
+ - Added radial_blur, random_threshold_channel methods to Image class
1081
+ (ImageMagick 6.0.0)
1082
+ - Added quantum_operator method to Image class (GraphicsMagick 1.1, ImageMagick 6.0.0)
1083
+ - Added statistics method to Image class (GraphicsMagick 1.1)
1084
+ - Support channel_extrema, channel_mean with GraphicsMagick 1.1
1085
+ - Added endian attribute to Image class
1086
+ - Added composite! method to Image class
1087
+ - Deprecated random_channel_threshold method when linked with ImageMagick 6.0.0.
1088
+
1089
+ ## RMagick 1.4.0
1090
+
1091
+ - Revised and updated documentation
1092
+ - Implemented enumeration values as instances of an Enum
1093
+ class. Based on a description by Paul Brannon in ruby-talk 79041.
1094
+ - Added HSLColorspace, HWBColorspace constants (ImageMagick 5.5.7,
1095
+ GraphicsMagick 1.0.2)
1096
+ - Added CopyCyanCompositeOp, CopyMagentaCompositeOp,
1097
+ CopyYellowCompositeOp, CopyBlackCompositeOp constants (ImageMagick 5.5.7,
1098
+ GraphicsMagick 1.1)
1099
+ - Added ReplaceCompositeOp. CopyCompositeOp constants (ImageMagick 6.0.0)
1100
+ - Added color_histogram to Image class. (ImageMagick 6.0.0, GraphicsMagick 1.1)
1101
+ - Added define method to Image::Info class (ImageMagick 6.0.0, GraphicsMagick 1.1)
1102
+ - Added tint, each_profile, channel_extrema, channel_compare,
1103
+ channel_depth, channel_mean, quantum_depth, preview, gamma_channel,
1104
+ negate_channel, bilevel_channel methods to Image class (ImageMagick 6.0.0)
1105
+ - Added get_exif_by_entry, get_exif_by_tag to Image class
1106
+ - Added border! method to Image class
1107
+ - Added fcmp, intensity methods to Pixel class
1108
+ - Added Version_long constant
1109
+ - The 'fuzz' attribute in the Image and ImageInfo classes now
1110
+ accepts a percentage value as well as a numeric value.
1111
+ - Added Geometry class and changed all methods that accept a geometry
1112
+ string to accept a Geometry object as well
1113
+ - Added dup and clone methods to the ImageList, Image, and Draw
1114
+ classes (Fix for bug #254.)
1115
+ - Tested with latest ImageMagick 6.0.0 beta and GraphicsMagick 1.1 snapshot
1116
+
1117
+ ## RMagick 1.3.2
1118
+
1119
+ - Fix profile! to require only 2 arguments, as documented.
1120
+ - Correct spelling of 'transparent' in text_antialias.rb example.
1121
+ - Add output of `Magick-config --libs` to LIBS variable in configure
1122
+ - Minor fixes in documentation
1123
+ - Test with GraphicsMagick 1.0.4
1124
+ - Test with latest ImageMagick 5.5.8 beta
1125
+
1126
+ ## RMagick 1.3.1
1127
+
1128
+ - Fixed default base URI in the links to the installed xMagick doc
1129
+ - Applied the patch for bug #76 that caused the rubyname.rb example
1130
+ to hang when installing on FreeBSD.
1131
+ - Fixed the <=> method in Image to return nil when the class of the
1132
+ other object is not Image
1133
+ - Added code to ensure that the `text' argument to Draw#text is not
1134
+ nil or empty
1135
+ - Fixed the handle_error function to re-initialize the exception
1136
+ structure after destroying its contents.
1137
+
1138
+ ## RMagick 1.3.0
1139
+
1140
+ - Added strip!, import_pixels, export_pixels, random_channel_threshold
1141
+ to the Image class. (Available only with ImageMagick 5.5.8, which
1142
+ is still in beta.)
1143
+ - Added black_threshold and white_threshold to the Image class.
1144
+ - Added format= attribute writer to the Image class
1145
+ - Added monochrome= attribute writer to the Image::Info class
1146
+ - Added annotate to the Image class.
1147
+ - Made the image argument to get_type_metrics optional. (Thanks to
1148
+ Hal Fulton for suggesting this change and the annotate change!)
1149
+ - Enhance the read, write, and ping methods in both the Image
1150
+ class and the ImageList class to accept an open File object as
1151
+ well as a filename argument.
1152
+ - Added change_geometry to the Image class
1153
+ - Changed configure to generate top-level Makefile with install
1154
+ and uninstall targets. (Thanks to Bob Friesenhahn for the
1155
+ suggestion and the the Makefile!)
1156
+ - Incorporated 1.2.2.1 patch to correct problems when building
1157
+ with Ruby 1.6.7.
1158
+ - Added "magick_location" attribute to the ImageMagickError
1159
+ class. (Available only with GraphicsMagick 1.1, not yet released.)
1160
+ - Tested with ImageMagick 5.5.8 beta
1161
+ - Tested with GraphicsMagick 1.0.2 and 1.1 snapshot
1162
+ - Tested with Ruby 1.8.0
1163
+ - Changed to MIT license
1164
+
1165
+ ## RMagick 1.2.2
1166
+
1167
+ - Fixed many bugs in configuration script
1168
+ - Added support for GraphicsMagick 1.0 (with assistance from Bob Friesenhahn)
1169
+ - Changed default documentation directory (--doc-dir option default) to
1170
+ $prefix/share/RMagick
1171
+ - Added "examples" directory to contain example programs that aren't
1172
+ referenced by the documentation
1173
+
1174
+ ## RMagick 1.2.1
1175
+
1176
+ - Yet another fix to the Cygwin installation procedure
1177
+
1178
+ ## RMagick 1.2.0
1179
+
1180
+ - Changed install to work correctly on Cygwin
1181
+ (Cygwin testing by Yuki Hirakawa and David Martinez Garcia.)
1182
+ - Changed install to support Gentoo ebuild
1183
+ (Gentoo support provided by Tom Payne.)
1184
+ - Changed configure script to find IM doc in IM 5.5.7
1185
+ - Added Image#capture
1186
+ - Added optional matte_pct argument to Image#colorize
1187
+ - Add default argument values to Image#gaussian_blur
1188
+ - Fix bug in Image#store_pixels that prevented it from working with
1189
+ GIF and other PseudoClass image formats
1190
+ - Changed Image#crop and Image#crop! to accept a GravityType constant
1191
+ as the first argument, instead of the x- and y-offset arguments.
1192
+ (Suggested by Robert Wagner.)
1193
+ - Added Image::Info#filename=, image_type=
1194
+ - Added ImageList#__map__ as an alias for Enumerable#map
1195
+ - Added fetch, insert, select, reject methods to ImageList class for
1196
+ Ruby 1.8.0
1197
+ - Undefined zip and transpose methods in ImageList class for Ruby 1.8.0
1198
+ - ImageMagick 5.5.7 supported
1199
+
1200
+ ## RMagick 1.1.0
1201
+
1202
+ - Fixed bug in handle_error that caused an abend when linked with IM 5.5.6
1203
+ - Added RMAGICK image "format". When read, returns 252x108 RMagick logo
1204
+ in PNG format.
1205
+ - Changed examples to give all floating point constants a leading digit.
1206
+ - Added Image#rotate!
1207
+ - Tested with Ruby 1.8.0preview2
1208
+ - Added Image#extract_info, Image::Info#extract=, Image::Info#scene=,
1209
+ Image::Info#number_scenes=, Image::Info#tile=
1210
+ - Added Draw#text_align, Draw#text_anchor, Draw#text_undercolor
1211
+ - ImageMagick 5.5.6 supported
1212
+
1213
+ ## RMagick 1.0.0
1214
+
1215
+ - Fixed warnings when compiling with Ruby 1.8.0
1216
+ - Added Draw#rotation=, rotated_text.rb
1217
+ - Fixed temp image files in Montage_texture and Draw_composite
1218
+ - ImageMagick 5.5.5 supported
1219
+
1220
+ ## RMagick 0.9.5
1221
+
1222
+ - Added channel.rb example
1223
+ - Fixed install problems with IM 5.5.1
1224
+
1225
+ ## RMagick 0.9.4
1226
+
1227
+ - Cleaned up documentation.
1228
+ - Added logging methods Magick.set_log_event_mask and Magick.set_log_format
1229
+ - Added Magick.set_monitor
1230
+ - Added custom serialization methods _dump and _load to Image class.
1231
+ Added marshaling section to usage doc.
1232
+ - Added Image#mime_type
1233
+ - Changed install to use autoconf-generated configure script
1234
+ - Replaced makedoc.rb with post-install.rb hook
1235
+ - Added rmconst.rb utility script
1236
+ - ImageMagick 5.5.4 supported
1237
+
1238
+ ## RMagick 0.9.3
1239
+
1240
+ - Changed ImageList#<=> to use same algorithm as Array#<=>
1241
+ - Changed Draw class variables to class constants
1242
+ - Fixed bug in Magick::colors method that caused some colors
1243
+ to be repeated or missed when the optional block is used
1244
+ - Changed fill classes to not inherit from common Fill class.
1245
+ Removed Fill class.
1246
+ - Improved usage documentation
1247
+ - Added Image#level_channel, introduced with IM 5.5.3
1248
+ - ImageMagick 5.5.3 supported
1249
+ - Ruby 1.6.8, 1.8.0preview1 supported
1250
+
1251
+ ## RMagick 0.9.2
1252
+
1253
+ - Added crop!, flip!, flop!, magnify!, minify!, resize!, sample!,
1254
+ scale!, shave!, channel_threshold methods to Image class
1255
+ - Documented DisposeType, ColorSeparationMatteType and OptimizeType
1256
+ constants
1257
+ - Changed Image#<=>, ImageList#<=> to raise TypeError if the other
1258
+ argument is not in the same class
1259
+ - Deleted Image#==, ImageList#==, include Comparable in both classes
1260
+ - Added Image#thumbnail, thumbnail!, adaptive_threshold for 5.5.2 & later
1261
+ - Used image list functions in 5.5.2 & later
1262
+ - ImageMagick 5.5.2 supported
1263
+ - Removed last vestiges of 5.4.9 support
1264
+
1265
+ ## RMagick 0.9.1
1266
+
1267
+ - Added -Wl,rpath option to $LDFLAGS in extconf.rb
1268
+ - #include <sys/types.h> in rmagick.h
1269
+ - Changed set_cache_threshold to call SetMagickResourceLimit instead of SetCacheThreshold
1270
+ - Changed Image_texture_flood_fill to clone texture image instead of adding a reference
1271
+ - Many fixes to the Array methods in ImageList
1272
+ - Defined Image#<=>, defined Image#== in terms of Image#<=>
1273
+ - Defined ImageList#<=> in terms of Image#<=>
1274
+
1275
+ ## RMagick 0.9.0
1276
+
1277
+ 1st beta