rmagick 2.16.0 → 5.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (441) hide show
  1. checksums.yaml +5 -5
  2. data/.devcontainer/Dockerfile +14 -0
  3. data/.devcontainer/ImageMagick6/devcontainer.json +11 -0
  4. data/.devcontainer/devcontainer.json +11 -0
  5. data/.devcontainer/setup-repo.sh +10 -0
  6. data/.devcontainer/setup-user.sh +45 -0
  7. data/.editorconfig +3 -0
  8. data/.github/ISSUE_TEMPLATE.md +17 -0
  9. data/.github/workflows/ci.yml +157 -0
  10. data/.gitignore +9 -1
  11. data/.rspec +1 -0
  12. data/.rubocop.yml +37 -340
  13. data/.rubocop_todo.yml +456 -0
  14. data/.yardopts +5 -0
  15. data/CHANGELOG.md +536 -0
  16. data/CODE_OF_CONDUCT.md +122 -7
  17. data/CONTRIBUTING.md +37 -6
  18. data/Gemfile +18 -4
  19. data/README.md +319 -0
  20. data/Rakefile +83 -98
  21. data/before_install_linux.sh +65 -28
  22. data/before_install_osx.sh +58 -2
  23. data/ext/RMagick/extconf.rb +310 -393
  24. data/ext/RMagick/{rmagick.c → rmagick.cpp} +119 -127
  25. data/ext/RMagick/rmagick.h +290 -363
  26. data/ext/RMagick/rmagick_gvl.h +224 -0
  27. data/ext/RMagick/rmdraw.cpp +1696 -0
  28. data/ext/RMagick/rmenum.cpp +796 -0
  29. data/ext/RMagick/{rmfill.c → rmfill.cpp} +287 -197
  30. data/ext/RMagick/rmilist.cpp +1275 -0
  31. data/ext/RMagick/rmimage.cpp +16459 -0
  32. data/ext/RMagick/{rminfo.c → rminfo.cpp} +738 -910
  33. data/ext/RMagick/rmkinfo.cpp +210 -0
  34. data/ext/RMagick/rmmain.cpp +1923 -0
  35. data/ext/RMagick/rmmontage.cpp +474 -0
  36. data/ext/RMagick/rmpixel.cpp +1322 -0
  37. data/ext/RMagick/{rmstruct.c → rmstruct.cpp} +104 -284
  38. data/ext/RMagick/{rmutil.c → rmutil.cpp} +500 -433
  39. data/lib/rmagick/version.rb +5 -4
  40. data/lib/rmagick.rb +2 -0
  41. data/lib/rmagick_internal.rb +397 -459
  42. data/lib/rvg/clippath.rb +3 -4
  43. data/lib/rvg/container.rb +30 -22
  44. data/lib/rvg/deep_equal.rb +11 -11
  45. data/lib/rvg/describable.rb +2 -2
  46. data/lib/rvg/embellishable.rb +67 -68
  47. data/lib/rvg/misc.rb +139 -142
  48. data/lib/rvg/paint.rb +2 -1
  49. data/lib/rvg/pathdata.rb +7 -8
  50. data/lib/rvg/rvg.rb +49 -46
  51. data/lib/rvg/stretchable.rb +22 -28
  52. data/lib/rvg/stylable.rb +12 -10
  53. data/lib/rvg/text.rb +169 -165
  54. data/lib/rvg/transformable.rb +17 -16
  55. data/lib/rvg/units.rb +5 -5
  56. data/rmagick.gemspec +7 -41
  57. data/sig/rmagick/_draw_common_methods.rbs +64 -0
  58. data/sig/rmagick/_image_common_methods.rbs +389 -0
  59. data/sig/rmagick/draw.rbs +38 -0
  60. data/sig/rmagick/draw_attribute.rbs +28 -0
  61. data/sig/rmagick/enum.rbs +814 -0
  62. data/sig/rmagick/error.rbs +11 -0
  63. data/sig/rmagick/fill.rbs +21 -0
  64. data/sig/rmagick/geometry.rbs +14 -0
  65. data/sig/rmagick/image.rbs +194 -0
  66. data/sig/rmagick/image_list.rbs +181 -0
  67. data/sig/rmagick/iptc.rbs +101 -0
  68. data/sig/rmagick/kernel_info.rbs +12 -0
  69. data/sig/rmagick/optional_method_arguments.rbs +10 -0
  70. data/sig/rmagick/pixel.rbs +46 -0
  71. data/sig/rmagick/struct.rbs +90 -0
  72. data/sig/rmagick.rbs +43 -0
  73. data/sig/rvg/clippath.rbs +34 -0
  74. data/sig/rvg/container.rbs +78 -0
  75. data/sig/rvg/deep_equal.rbs +48 -0
  76. data/sig/rvg/describable.rbs +30 -0
  77. data/sig/rvg/embellishable.rbs +226 -0
  78. data/sig/rvg/misc.rbs +145 -0
  79. data/sig/rvg/paint.rbs +55 -0
  80. data/sig/rvg/pathdata.rbs +77 -0
  81. data/sig/rvg/rvg.rbs +125 -0
  82. data/sig/rvg/stretchable.rbs +56 -0
  83. data/sig/rvg/stylable.rbs +66 -0
  84. data/sig/rvg/text.rbs +118 -0
  85. data/sig/rvg/transformable.rbs +59 -0
  86. data/sig/rvg/units.rbs +33 -0
  87. metadata +68 -428
  88. data/.hound.yml +0 -2
  89. data/.simplecov +0 -27
  90. data/.travis.yml +0 -74
  91. data/Doxyfile +0 -1514
  92. data/README.textile +0 -251
  93. data/deprecated/RMagick.rb +0 -6
  94. data/doc/.cvsignore +0 -1
  95. data/doc/comtasks.html +0 -287
  96. data/doc/constants.html +0 -1581
  97. data/doc/css/doc.css +0 -299
  98. data/doc/css/popup.css +0 -34
  99. data/doc/css/ref.css +0 -67
  100. data/doc/draw.html +0 -3272
  101. data/doc/ex/InitialCoords.rb +0 -22
  102. data/doc/ex/NewCoordSys.rb +0 -30
  103. data/doc/ex/OrigCoordSys.rb +0 -16
  104. data/doc/ex/PreserveAspectRatio.rb +0 -204
  105. data/doc/ex/RotateScale.rb +0 -36
  106. data/doc/ex/Skew.rb +0 -38
  107. data/doc/ex/Use01.rb +0 -15
  108. data/doc/ex/Use02.rb +0 -20
  109. data/doc/ex/Use03.rb +0 -16
  110. data/doc/ex/ViewBox.rb +0 -31
  111. data/doc/ex/adaptive_threshold.rb +0 -9
  112. data/doc/ex/add_noise.rb +0 -16
  113. data/doc/ex/affine.rb +0 -48
  114. data/doc/ex/affine_transform.rb +0 -20
  115. data/doc/ex/arc.rb +0 -49
  116. data/doc/ex/arcpath.rb +0 -32
  117. data/doc/ex/arcs01.rb +0 -28
  118. data/doc/ex/arcs02.rb +0 -59
  119. data/doc/ex/average.rb +0 -15
  120. data/doc/ex/axes.rb +0 -64
  121. data/doc/ex/baseline_shift01.rb +0 -17
  122. data/doc/ex/bilevel_channel.rb +0 -8
  123. data/doc/ex/blur_image.rb +0 -12
  124. data/doc/ex/border.rb +0 -10
  125. data/doc/ex/bounding_box.rb +0 -42
  126. data/doc/ex/cbezier1.rb +0 -41
  127. data/doc/ex/cbezier2.rb +0 -41
  128. data/doc/ex/cbezier3.rb +0 -41
  129. data/doc/ex/cbezier4.rb +0 -42
  130. data/doc/ex/cbezier5.rb +0 -42
  131. data/doc/ex/cbezier6.rb +0 -53
  132. data/doc/ex/channel.rb +0 -25
  133. data/doc/ex/charcoal.rb +0 -12
  134. data/doc/ex/chop.rb +0 -29
  135. data/doc/ex/circle.rb +0 -33
  136. data/doc/ex/circle01.rb +0 -16
  137. data/doc/ex/clip_path.rb +0 -60
  138. data/doc/ex/coalesce.rb +0 -57
  139. data/doc/ex/color_fill_to_border.rb +0 -29
  140. data/doc/ex/color_floodfill.rb +0 -28
  141. data/doc/ex/color_histogram.rb +0 -47
  142. data/doc/ex/color_reset.rb +0 -11
  143. data/doc/ex/colorize.rb +0 -16
  144. data/doc/ex/colors.rb +0 -64
  145. data/doc/ex/compose_mask.rb +0 -22
  146. data/doc/ex/composite.rb +0 -133
  147. data/doc/ex/composite_layers.rb +0 -53
  148. data/doc/ex/composite_tiled.rb +0 -21
  149. data/doc/ex/contrast.rb +0 -36
  150. data/doc/ex/crop.rb +0 -31
  151. data/doc/ex/crop_with_gravity.rb +0 -42
  152. data/doc/ex/cubic01.rb +0 -43
  153. data/doc/ex/cubic02.rb +0 -91
  154. data/doc/ex/cycle_colormap.rb +0 -21
  155. data/doc/ex/dissolve.rb +0 -12
  156. data/doc/ex/drawcomp.rb +0 -42
  157. data/doc/ex/drop_shadow.rb +0 -60
  158. data/doc/ex/edge.rb +0 -11
  159. data/doc/ex/ellipse.rb +0 -45
  160. data/doc/ex/ellipse01.rb +0 -21
  161. data/doc/ex/emboss.rb +0 -11
  162. data/doc/ex/enhance.rb +0 -28
  163. data/doc/ex/equalize.rb +0 -11
  164. data/doc/ex/evenodd.rb +0 -42
  165. data/doc/ex/fill_pattern.rb +0 -23
  166. data/doc/ex/flatten_images.rb +0 -36
  167. data/doc/ex/flip.rb +0 -11
  168. data/doc/ex/flop.rb +0 -11
  169. data/doc/ex/font_styles.rb +0 -32
  170. data/doc/ex/fonts.rb +0 -20
  171. data/doc/ex/frame.rb +0 -12
  172. data/doc/ex/gaussian_blur.rb +0 -11
  173. data/doc/ex/get_multiline_type_metrics.rb +0 -41
  174. data/doc/ex/get_pixels.rb +0 -47
  175. data/doc/ex/get_type_metrics.rb +0 -141
  176. data/doc/ex/gradientfill.rb +0 -27
  177. data/doc/ex/grav.rb +0 -45
  178. data/doc/ex/gravity.rb +0 -80
  179. data/doc/ex/group.rb +0 -26
  180. data/doc/ex/hatchfill.rb +0 -27
  181. data/doc/ex/image.rb +0 -44
  182. data/doc/ex/images/Apple.miff +0 -0
  183. data/doc/ex/images/Ballerina.jpg +0 -0
  184. data/doc/ex/images/Ballerina3.jpg +0 -0
  185. data/doc/ex/images/Button_0.gif +0 -0
  186. data/doc/ex/images/Button_1.gif +0 -0
  187. data/doc/ex/images/Button_2.gif +0 -0
  188. data/doc/ex/images/Button_3.gif +0 -0
  189. data/doc/ex/images/Button_4.gif +0 -0
  190. data/doc/ex/images/Button_5.gif +0 -0
  191. data/doc/ex/images/Button_6.gif +0 -0
  192. data/doc/ex/images/Button_7.gif +0 -0
  193. data/doc/ex/images/Button_8.gif +0 -0
  194. data/doc/ex/images/Button_9.gif +0 -0
  195. data/doc/ex/images/Button_A.gif +0 -0
  196. data/doc/ex/images/Button_B.gif +0 -0
  197. data/doc/ex/images/Button_C.gif +0 -0
  198. data/doc/ex/images/Button_D.gif +0 -0
  199. data/doc/ex/images/Button_E.gif +0 -0
  200. data/doc/ex/images/Button_F.gif +0 -0
  201. data/doc/ex/images/Button_G.gif +0 -0
  202. data/doc/ex/images/Button_H.gif +0 -0
  203. data/doc/ex/images/Button_I.gif +0 -0
  204. data/doc/ex/images/Button_J.gif +0 -0
  205. data/doc/ex/images/Button_K.gif +0 -0
  206. data/doc/ex/images/Button_L.gif +0 -0
  207. data/doc/ex/images/Button_M.gif +0 -0
  208. data/doc/ex/images/Button_N.gif +0 -0
  209. data/doc/ex/images/Button_O.gif +0 -0
  210. data/doc/ex/images/Button_P.gif +0 -0
  211. data/doc/ex/images/Button_Q.gif +0 -0
  212. data/doc/ex/images/Button_R.gif +0 -0
  213. data/doc/ex/images/Button_S.gif +0 -0
  214. data/doc/ex/images/Button_T.gif +0 -0
  215. data/doc/ex/images/Button_U.gif +0 -0
  216. data/doc/ex/images/Button_V.gif +0 -0
  217. data/doc/ex/images/Button_W.gif +0 -0
  218. data/doc/ex/images/Button_X.gif +0 -0
  219. data/doc/ex/images/Button_Y.gif +0 -0
  220. data/doc/ex/images/Button_Z.gif +0 -0
  221. data/doc/ex/images/Cheetah.jpg +0 -0
  222. data/doc/ex/images/Coffee.wmf +0 -0
  223. data/doc/ex/images/Flower_Hat.jpg +0 -0
  224. data/doc/ex/images/Gold_Statue.jpg +0 -0
  225. data/doc/ex/images/Hot_Air_Balloons.jpg +0 -0
  226. data/doc/ex/images/Hot_Air_Balloons_H.jpg +0 -0
  227. data/doc/ex/images/Leaf.miff +0 -0
  228. data/doc/ex/images/No.wmf +0 -0
  229. data/doc/ex/images/Polynesia.jpg +0 -0
  230. data/doc/ex/images/Red_Rocks.jpg +0 -0
  231. data/doc/ex/images/Rocks_On_Beach.miff +0 -0
  232. data/doc/ex/images/Shorts.jpg +0 -0
  233. data/doc/ex/images/Snake.wmf +0 -0
  234. data/doc/ex/images/Violin.jpg +0 -0
  235. data/doc/ex/images/Yellow_Rose.miff +0 -0
  236. data/doc/ex/images/big-duck.gif +0 -0
  237. data/doc/ex/images/duck.gif +0 -0
  238. data/doc/ex/images/duck0.gif +0 -0
  239. data/doc/ex/images/duck1.gif +0 -0
  240. data/doc/ex/images/duck10.gif +0 -0
  241. data/doc/ex/images/duck11.gif +0 -0
  242. data/doc/ex/images/duck12.gif +0 -0
  243. data/doc/ex/images/duck13.gif +0 -0
  244. data/doc/ex/images/duck14.gif +0 -0
  245. data/doc/ex/images/duck15.gif +0 -0
  246. data/doc/ex/images/duck2.gif +0 -0
  247. data/doc/ex/images/duck3.gif +0 -0
  248. data/doc/ex/images/duck4.gif +0 -0
  249. data/doc/ex/images/duck5.gif +0 -0
  250. data/doc/ex/images/duck6.gif +0 -0
  251. data/doc/ex/images/duck7.gif +0 -0
  252. data/doc/ex/images/duck8.gif +0 -0
  253. data/doc/ex/images/duck9.gif +0 -0
  254. data/doc/ex/images/graydient230x6.gif +0 -0
  255. data/doc/ex/images/image_with_profile.jpg +0 -0
  256. data/doc/ex/images/logo400x83.gif +0 -0
  257. data/doc/ex/images/model.miff +0 -0
  258. data/doc/ex/images/notimplemented.gif +0 -0
  259. data/doc/ex/images/smile.miff +0 -0
  260. data/doc/ex/images/spin.gif +0 -0
  261. data/doc/ex/implode.rb +0 -34
  262. data/doc/ex/level.rb +0 -11
  263. data/doc/ex/level_colors.rb +0 -11
  264. data/doc/ex/line.rb +0 -41
  265. data/doc/ex/line01.rb +0 -21
  266. data/doc/ex/mask.rb +0 -35
  267. data/doc/ex/matte_fill_to_border.rb +0 -39
  268. data/doc/ex/matte_floodfill.rb +0 -32
  269. data/doc/ex/matte_replace.rb +0 -39
  270. data/doc/ex/median_filter.rb +0 -28
  271. data/doc/ex/modulate.rb +0 -11
  272. data/doc/ex/mono.rb +0 -23
  273. data/doc/ex/morph.rb +0 -25
  274. data/doc/ex/mosaic.rb +0 -35
  275. data/doc/ex/motion_blur.rb +0 -11
  276. data/doc/ex/negate.rb +0 -11
  277. data/doc/ex/negate_channel.rb +0 -9
  278. data/doc/ex/nested_rvg.rb +0 -21
  279. data/doc/ex/nonzero.rb +0 -42
  280. data/doc/ex/normalize.rb +0 -11
  281. data/doc/ex/oil_paint.rb +0 -11
  282. data/doc/ex/opacity.rb +0 -37
  283. data/doc/ex/ordered_dither.rb +0 -11
  284. data/doc/ex/path.rb +0 -63
  285. data/doc/ex/pattern1.rb +0 -25
  286. data/doc/ex/pattern2.rb +0 -26
  287. data/doc/ex/polaroid.rb +0 -27
  288. data/doc/ex/polygon.rb +0 -23
  289. data/doc/ex/polygon01.rb +0 -21
  290. data/doc/ex/polyline.rb +0 -22
  291. data/doc/ex/polyline01.rb +0 -21
  292. data/doc/ex/posterize.rb +0 -8
  293. data/doc/ex/preview.rb +0 -8
  294. data/doc/ex/qbezierpath.rb +0 -52
  295. data/doc/ex/quad01.rb +0 -34
  296. data/doc/ex/quantize-m.rb +0 -25
  297. data/doc/ex/radial_blur.rb +0 -9
  298. data/doc/ex/raise.rb +0 -8
  299. data/doc/ex/random_threshold_channel.rb +0 -13
  300. data/doc/ex/rect01.rb +0 -14
  301. data/doc/ex/rect02.rb +0 -20
  302. data/doc/ex/rectangle.rb +0 -34
  303. data/doc/ex/reduce_noise.rb +0 -28
  304. data/doc/ex/remap.rb +0 -11
  305. data/doc/ex/remap_images.rb +0 -19
  306. data/doc/ex/resize_to_fill.rb +0 -8
  307. data/doc/ex/resize_to_fit.rb +0 -8
  308. data/doc/ex/roll.rb +0 -9
  309. data/doc/ex/rotate.rb +0 -44
  310. data/doc/ex/rotate_f.rb +0 -14
  311. data/doc/ex/roundrect.rb +0 -33
  312. data/doc/ex/rubyname.rb +0 -30
  313. data/doc/ex/rvg_clippath.rb +0 -12
  314. data/doc/ex/rvg_linecap.rb +0 -42
  315. data/doc/ex/rvg_linejoin.rb +0 -40
  316. data/doc/ex/rvg_opacity.rb +0 -18
  317. data/doc/ex/rvg_pattern.rb +0 -26
  318. data/doc/ex/rvg_stroke_dasharray.rb +0 -11
  319. data/doc/ex/segment.rb +0 -11
  320. data/doc/ex/sepiatone.rb +0 -7
  321. data/doc/ex/shade.rb +0 -11
  322. data/doc/ex/shadow.rb +0 -30
  323. data/doc/ex/shave.rb +0 -15
  324. data/doc/ex/shear.rb +0 -10
  325. data/doc/ex/sketch.rb +0 -17
  326. data/doc/ex/skewx.rb +0 -51
  327. data/doc/ex/skewy.rb +0 -47
  328. data/doc/ex/smile.rb +0 -125
  329. data/doc/ex/solarize.rb +0 -11
  330. data/doc/ex/sparse_color.rb +0 -54
  331. data/doc/ex/splice.rb +0 -8
  332. data/doc/ex/spread.rb +0 -11
  333. data/doc/ex/stegano.rb +0 -55
  334. data/doc/ex/stroke_dasharray.rb +0 -42
  335. data/doc/ex/stroke_fill.rb +0 -10
  336. data/doc/ex/stroke_linecap.rb +0 -44
  337. data/doc/ex/stroke_linejoin.rb +0 -48
  338. data/doc/ex/stroke_width.rb +0 -49
  339. data/doc/ex/swirl.rb +0 -17
  340. data/doc/ex/text.rb +0 -37
  341. data/doc/ex/text01.rb +0 -16
  342. data/doc/ex/text_align.rb +0 -36
  343. data/doc/ex/text_antialias.rb +0 -37
  344. data/doc/ex/text_styles.rb +0 -19
  345. data/doc/ex/text_undercolor.rb +0 -28
  346. data/doc/ex/texture_fill_to_border.rb +0 -34
  347. data/doc/ex/texture_floodfill.rb +0 -32
  348. data/doc/ex/texturefill.rb +0 -24
  349. data/doc/ex/threshold.rb +0 -13
  350. data/doc/ex/to_blob.rb +0 -13
  351. data/doc/ex/translate.rb +0 -39
  352. data/doc/ex/transparent.rb +0 -38
  353. data/doc/ex/transpose.rb +0 -9
  354. data/doc/ex/transverse.rb +0 -9
  355. data/doc/ex/tref01.rb +0 -24
  356. data/doc/ex/triangle01.rb +0 -15
  357. data/doc/ex/trim.rb +0 -23
  358. data/doc/ex/tspan01.rb +0 -17
  359. data/doc/ex/tspan02.rb +0 -17
  360. data/doc/ex/tspan03.rb +0 -19
  361. data/doc/ex/unsharp_mask.rb +0 -28
  362. data/doc/ex/viewex.rb +0 -33
  363. data/doc/ex/vignette.rb +0 -12
  364. data/doc/ex/watermark.rb +0 -27
  365. data/doc/ex/wave.rb +0 -9
  366. data/doc/ex/wet_floor.rb +0 -58
  367. data/doc/ex/writing_mode01.rb +0 -26
  368. data/doc/ex/writing_mode02.rb +0 -26
  369. data/doc/ilist.html +0 -2056
  370. data/doc/image1.html +0 -4680
  371. data/doc/image2.html +0 -3665
  372. data/doc/image3.html +0 -4522
  373. data/doc/imageattrs.html +0 -1638
  374. data/doc/imusage.html +0 -514
  375. data/doc/index.html +0 -416
  376. data/doc/info.html +0 -1499
  377. data/doc/magick.html +0 -565
  378. data/doc/optequiv.html +0 -2435
  379. data/doc/rvg.html +0 -975
  380. data/doc/rvgclip.html +0 -248
  381. data/doc/rvggroup.html +0 -305
  382. data/doc/rvgimage.html +0 -289
  383. data/doc/rvgpattern.html +0 -475
  384. data/doc/rvgshape.html +0 -406
  385. data/doc/rvgstyle.html +0 -270
  386. data/doc/rvgtext.html +0 -465
  387. data/doc/rvgtspan.html +0 -238
  388. data/doc/rvgtut.html +0 -530
  389. data/doc/rvguse.html +0 -145
  390. data/doc/rvgxform.html +0 -294
  391. data/doc/scripts/doc.js +0 -22
  392. data/doc/scripts/stripeTables.js +0 -23
  393. data/doc/struct.html +0 -1339
  394. data/doc/usage.html +0 -1621
  395. data/examples/constitute.rb +0 -7
  396. data/examples/crop_with_gravity.rb +0 -42
  397. data/examples/demo.rb +0 -324
  398. data/examples/describe.rb +0 -43
  399. data/examples/find_similar_region.rb +0 -34
  400. data/examples/histogram.rb +0 -321
  401. data/examples/identify.rb +0 -185
  402. data/examples/image_opacity.rb +0 -29
  403. data/examples/import_export.rb +0 -31
  404. data/examples/pattern_fill.rb +0 -38
  405. data/examples/rotating_text.rb +0 -44
  406. data/examples/spinner.rb +0 -49
  407. data/examples/thumbnail.rb +0 -64
  408. data/examples/vignette.rb +0 -78
  409. data/ext/RMagick/rmdraw.c +0 -2022
  410. data/ext/RMagick/rmenum.c +0 -1235
  411. data/ext/RMagick/rmilist.c +0 -1270
  412. data/ext/RMagick/rmimage.c +0 -15427
  413. data/ext/RMagick/rmmain.c +0 -1741
  414. data/ext/RMagick/rmmontage.c +0 -519
  415. data/ext/RMagick/rmpixel.c +0 -1114
  416. data/spec/rmagick/ImageList1_spec.rb +0 -24
  417. data/spec/rmagick/draw_spec.rb +0 -156
  418. data/spec/rmagick/image/blue_shift_spec.rb +0 -16
  419. data/spec/rmagick/image/composite_spec.rb +0 -140
  420. data/spec/rmagick/image/constitute_spec.rb +0 -15
  421. data/spec/rmagick/image/dispatch_spec.rb +0 -18
  422. data/spec/rmagick/image/from_blob_spec.rb +0 -14
  423. data/spec/rmagick/image/ping_spec.rb +0 -14
  424. data/spec/rmagick/image/properties_spec.rb +0 -29
  425. data/spec/spec_helper.rb +0 -4
  426. data/test/Image1.rb +0 -565
  427. data/test/Image2.rb +0 -1304
  428. data/test/Image3.rb +0 -1030
  429. data/test/ImageList1.rb +0 -806
  430. data/test/ImageList2.rb +0 -385
  431. data/test/Image_attributes.rb +0 -697
  432. data/test/Import_Export.rb +0 -121
  433. data/test/Info.rb +0 -345
  434. data/test/Magick.rb +0 -321
  435. data/test/Pixel.rb +0 -116
  436. data/test/Preview.rb +0 -57
  437. data/test/cmyk.icm +0 -0
  438. data/test/srgb.icm +0 -0
  439. data/test/test_all_basic.rb +0 -38
  440. data/test/tmpnam_test.rb +0 -50
  441. data/wercker.yml +0 -10
data/CHANGELOG.md CHANGED
@@ -3,6 +3,542 @@
3
3
  All notable changes to this project are documented in this file.
4
4
  This project adheres to [Semantic Versioning](http://semver.org/).
5
5
 
6
+ ## RMagick 5.5.0
7
+
8
+ Improvements
9
+
10
+ - Add RBS signatures (#1458)
11
+ - Remove unnecessary type check in KernelInfo#{unity_add, scale} (#1514)
12
+ - Remove unnecessary type check in Image#{morphology, morphology_channel} (#1513)
13
+ - Improve HatchFill.new to accept Pixel object as color (#1512)
14
+ - Fix GraphicContext#font_weight to accept Numeric object (#1510)
15
+ - Improve GraphicContext#font_weight to accept Symbol object (#1509)
16
+ - Improve Stretchable#viewbox to use implicitly conversioned value (#1507)
17
+ - Improve RVG::Transformable#rotate to convert to Float implicitly (#1506)
18
+ - Fix Image#modulate in order to accept negative number (#1505)
19
+ - Improve Image#modulate to accept "NN%" form string (#1504)
20
+ - Implicit conversion to string with methods that expect a string (#1496)
21
+ - Coerce to string instead of using #to_s (#1495)
22
+ - Coerce to string where pass object into string interpolation (#1494)
23
+ - Fix Draw#{fill_opacity, opacity, stroke_opacity} to correctly handle arguments (#1492)
24
+ - Fix Draw#{interline_spacing, interword_spacing, kerning} to correctly handle arguments that can be converted to Float (#1491)
25
+ - Remove unnecessary type check in KernelInfo methods (#1489)
26
+ - Generate compile_flags.txt for clangd for development (#1488)
27
+ - Fix Draw#{stroke_dasharray, stroke_miterlimit} to accept object which has #to_f method (#1486)
28
+ - Fix Image#composite_affine to accept ImageList object (#1484)
29
+ - Fix Image#add_compose_mask to accept ImageList object (#1483)
30
+ - Fix incorrect number of required arguments in ArgumentError (#1482)
31
+ - Fix ImageList#sort! that should return self (#1481)
32
+ - Fix ImageList#eql? that should not raise exception if can't compare (#1479)
33
+ - Fix ImageList#<=> that should return nil if can't compare (#1478)
34
+ - Add DrawAttribute module to simplify Draw, DrawOptions and PolaroidOptions (#1477)
35
+ - Add missing attribute writer methods in Image::{DrawOptions, PolaroidOptions} (#1476)
36
+ - Add Image::PolaroidOptions#affine= (#1475)
37
+ - Add Image::PolaroidOptions#tile= (#1474)
38
+ - Attribute writer methods should return passed value (#1473)
39
+ - Return self with ImageList if Image's method return self (#1472)
40
+ - Fix Image#clut_channel to accept ImageList object (#1471)
41
+ - Fix Magick::GradientFill#fill and Magick::TextureFill#fill to accept ImageList object (#1467)
42
+
43
+ Bug Fixes
44
+
45
+ - Fix typo in order to fix NoMethodError (#1515)
46
+ - Sync compression value in order fix the problem of compression being ignored by ImageMagick 7 (#1503)
47
+ - Add PKG_CONFIG_PATH for ImageMagick 7 in order to fix installation error on macOS (#1501)
48
+
49
+ ## RMagick 5.4.4
50
+
51
+ Bug Fixes
52
+
53
+ - Fix installation error again in some environment at creatint Makefile (#1465)
54
+ - Fix Pixel#<=> which should accept other class instance (#1463)
55
+
56
+ ## RMagick 5.4.3
57
+
58
+ Bug Fixes
59
+
60
+ - Fix installation error in some environment by using x flag to use C++ compiler in order to create Makefile (#1460)
61
+
62
+ ## RMagick 5.4.2
63
+
64
+ Improvements
65
+
66
+ - Check C++ compiler exists (#1453)
67
+
68
+ ## RMagick 5.4.1
69
+
70
+ Bug Fixes
71
+
72
+ - Fix invalid cast between different size variables (#1448)
73
+
74
+ ## RMagick 5.4.0
75
+
76
+ Improvements
77
+
78
+ - Use rb_io_path() if exist because pathv attr was marked as deprecated at Ruby 3.3 (#1409)
79
+ - Add observer gem as dependency (#1411)
80
+ - Add aliases of filter type (#1439)
81
+ - Release GVL in Image#contrast (#1440)
82
+
83
+ Bug Fixes
84
+
85
+ - Use C++ compiler in order to fix installation error with latest ImageMagick 7 on Windows (#1433)
86
+
87
+ ## RMagick 5.3.0
88
+
89
+ Improvements
90
+
91
+ - Support GC compaction (#1388)
92
+
93
+ Bug Fixes
94
+
95
+ - Fix memory leak in `Magick::Draw` for recentry ImageMagick 6 by removing unnecessary `GetDrawInfo()` calling (#1406)
96
+ - Fix crash on ImageList#write with animation gif (#1379)
97
+ - Windows: Fix RubyInstaller::Runtime::DllDirectory::WinApiError (#1381)
98
+
99
+ ## RMagick 5.2.0
100
+
101
+ Improvements
102
+
103
+ - Add OnAlphaChannel and OffAlphaChannel to the AlphaChannelOption enumeration. (#1377)
104
+ - Add Ruby 3.2 support (#1370)
105
+
106
+ ## RMagick 5.1.0
107
+
108
+ Improvements
109
+
110
+ - Improve multi-thread performance by releasing GVL (#1352)
111
+ - Add Ractor support (#1349)
112
+ - Avoid overriding compilation variables (#1365)
113
+ - Remove pkg-config command dependency (#1366)
114
+
115
+ ## RMagick 5.0.0
116
+
117
+ Improvements
118
+
119
+ - Improve installer in order to avoid SEGV within pkg-config command (#1359)
120
+ - Clean up the documents and comment in source code referring to something that no longer exist (#1363)
121
+ - Remove deprecated 'tile' attribute in Draw#marshal_dump (#1364)
122
+ - Remove deprecated #instance_eval calling when block was given with Magick::ImageList#montage, Magick::Image::Info.new and more (#1362)
123
+ - Remove deprecated RMagick.rb file (#1361)
124
+ - Remove deprecated Magick.trace_proc= (#1351)
125
+ - Remove deprecated Magick::{Image, Image::Info}#monitor= (#1356)
126
+
127
+ ## RMagick 4.3.0
128
+
129
+ Deprecates
130
+
131
+ - Mark Magick.trace_proc= as deprecated (#1354)
132
+ - Mark Magick::{Image, Image::Info}#monitor= as deprecated (#1353)
133
+
134
+ These methods will be removed in RMagick 5.0 and no alternative.
135
+
136
+ ## RMagick 4.2.6
137
+
138
+ Improvements
139
+
140
+ - Remove test_files to reduce gem package size (#1338)
141
+
142
+ Bug Fixes
143
+
144
+ - Guard against an empty rpath (#1333)
145
+ - Call GetImageDistortion instead of IsImagesEqual to fix the issue reported in #1342 (#1343)
146
+
147
+ ## RMagick 4.2.5
148
+
149
+ Bug Fixes
150
+
151
+ - Specify rpath linker option to fix dynamic lib lookup failure on Linux (#1325)
152
+ - Fix Image#profile! that can't delete exif data (#1326)
153
+
154
+ ## RMagick 4.2.4
155
+
156
+ Improvements
157
+
158
+ - spec_helper: drop require_relative to lib directory (#1306)
159
+ - Fix build error with Ruby 3.1 on macOS (#1313)
160
+
161
+ Bug Fixes
162
+
163
+ - remove Mutex in trace_proc= (#1303)
164
+ - channel_mean_spec: fix floating point comparison (#1307)
165
+ - changed_predicate_spec: ensure target directory exists (#1305)
166
+ - Doc: Fix documentation of Magick::Image#crop (#1311)
167
+ - Magick::UndefinedKernel should also not be used when creating a new KernelInfo. (#1312)
168
+
169
+ ## RMagick 4.2.3
170
+
171
+ Bug Fixes
172
+
173
+ - Re-add block syntax deprecation warning and fix in RMagick source (#1279) (#1280)
174
+ - Doc: Replace Magick::Montage with Magick::ImageList::Montage (#1281)
175
+ - Update shadow example (#1297)
176
+ - Escape the backslashes in windows error message (#1298)
177
+ - Also set the alpha value of the target pixel (#1299)
178
+ - Set alpha_trait to BlendPixelTrait when the alpha value of the pixel is not opaque. (#1300)
179
+
180
+ ## RMagick 4.2.2
181
+
182
+ Bug Fixes:
183
+
184
+ - Remove deprecation warning about block syntax (#1272)
185
+
186
+ You are still recommended to use the block parameter instead of `self.` but
187
+ we're silencing the deprecation warning until we can get RMagick's code up to
188
+ that standard.
189
+
190
+ ## RMagick 4.2.1
191
+
192
+ Bug Fixes:
193
+
194
+ - Fix compilation with optimization on glibc (#1263)
195
+
196
+ ## RMagick 4.2.0
197
+
198
+ This adds a deprecation warning when using a block for image operations.
199
+ Instead of setting properties on `self`, you should accept a block argument and
200
+ modify that instead. In a future version we we no longer be binding the block
201
+ to the image.
202
+
203
+ ```diff
204
+ - img.to_blob { self.quality = 75 }
205
+ + img.to_blob { |image| image.quality = 75 }
206
+ ```
207
+
208
+ Improvements:
209
+
210
+ - Updated error messages if runtime ImageMagick version was not matched with when installed rmagick (#1213)
211
+ - Improve Image#resize performance with ImageMagick 7 (#1240)
212
+ - Added new colorspaces (#1252)
213
+
214
+ Bug Fixes:
215
+
216
+ - Fix assertion failed in Magick::TextureFill.new with with unexpected argument (#1216)
217
+ - Call with yield when there is a block arguments (#701)
218
+ - Avoid crash with monitor feature on Ruby 3.0 (#1253)
219
+
220
+ ## RMagick 4.1.2
221
+
222
+ Bug Fixes:
223
+
224
+ - Fix build error on Freebsd (#1199)
225
+ - Add workaround for FreeBSD that it isn't able to process PDF (#1203)
226
+
227
+ ## RMagick 4.1.1
228
+
229
+ Bug Fixes:
230
+
231
+ - Fix bug of signal handling internally (#1189)
232
+
233
+ ## RMagick 4.1.0
234
+
235
+ Improvements:
236
+
237
+ - reduce package size by more than 1.5mb (#849)
238
+ - improve memory usage (#836)
239
+ - add support for Ruby 2.7 (#853)
240
+ - *many* documentation fixes and cleanups
241
+ - *many* testing fixes and cleanups
242
+ - Support CMYK color in Image#get_pixels (#871)
243
+ - Support to get CMYK color in Image#pixel_color (#875)
244
+ - Support to set CMYK color in Image#pixel_color (#908)
245
+ - Add ImageList#map (#1154)
246
+
247
+ Bug Fixes:
248
+
249
+ - fixed memory leaks (#809, #815, #816, #960, #1024)
250
+ - eliminate compiler warnings (#855, #864, #878, #917, #969, #981, #996, #1000, #1044)
251
+ - Recognize invert option in Image#opaque_channel with ImageMagick 7 (#882)
252
+ - Fix heap-buffer-overflow in Image#wet_floor with ImageMagick 7 (#883)
253
+ - Handle channel value with new image in Image#opaque_channel with ImageMagick 7 (#886)
254
+ - Pass caption value into ImageMagick 7 API in Image#polaroid (#898)
255
+ - Example: Fix “uninitialized constant Magick::TransparentOpacity” error (#899)
256
+ - Example: Fix error of constant usage (#900)
257
+ - Example: Fix error in doc/ex/composite.rb (#901)
258
+ - Example: Fix error in doc/ex/crop_with_gravity.rb (#902)
259
+ - Revert removed RemapImages() calling in ImageList#remap for ImageMagick 6 (#904)
260
+ - Example: Fix alpha channel in examples/vignette.rb (#918)
261
+ - Example: Fix alpha channel in doc/ex/coalesce.rb (#920)
262
+ - Handle alpha value in Pixel#to_color (#922)
263
+ - Detect the proper ARCHFLAGS on macOS (#923)
264
+ - Handle boolean value as dither option in ImageList#quantize (#926)
265
+ - Use strlcpy instead of strncpy to ensure null terminating. (#933)
266
+ - Remove memalign() (#939)
267
+ - Add safe strlen() to ensure avoiding buffer overrun (#940)
268
+ - Use strlcpy() instead of strcpy() to ensure avoiding buffer overflow (#941)
269
+ - Use snprintf() instead of sprintf() to ensure avoiding buffer overflow (#945)
270
+ - Example: Remove unnecessary alpha setting (#950)
271
+ - Replace to correct format specifiers for size_t/ssize_t value (#978)
272
+ - Use proper format specifiers within MinGW (#997)
273
+ - Fix snprintf() format specifiers for unsigned value (#1006)
274
+ - Fix warning of “Variable is reassigned a value before the old one has been use” (#1008)
275
+ - Fix warning of “warning: explicitly assigning value of variable of type 'int' to itself” (#1013)
276
+ - Fix Image#resample to use blur option properly with ImageMagick 7 (#1023)
277
+ - Fix Image#resize to use blur option properly with ImageMagick 7 (#1032)
278
+ - Fix that Color#compliance returns nil with undefined bit (#1049)
279
+ - Check memory API properly on Windows (#1050)
280
+ - Example: Fix “undefined method `opacity’” (#1051)
281
+ - Add workaround to pdf problem (#1072)
282
+ - Fix exception message because #export_pixels accept 0 argument (#1121)
283
+ - Fix default value of `fill` argument in Image#initialize (#1122)
284
+ - Call rm_ensure_result() in creating Image object (#1144)
285
+ - Use StringValueCStr() instead of StringValuePtr() (#1156)
286
+ - Use RSTRING_PTR() to retrieve a pointer of String object for buffer (#1157)
287
+ - Use StringValueCStr() to get null-terminated C-lang string (#1158)
288
+ - Fix SEGV in Magick::Draw#marshal_load (#1162)
289
+ - Fix SEGV in rm_check_ary_len() with unexpected argument value (#1168)
290
+ - Fix SEGV in Image#marshal_load (#1169)
291
+
292
+ Breaking Changes:
293
+
294
+ - remove `tainted?` logic (#854)
295
+
296
+ ## RMagick 4.1.0.rc2
297
+
298
+ - fix a couple of compilation bugs (#796, #797)
299
+
300
+ ## RMagick 4.1.0.rc1
301
+
302
+ The ImageMagick 7 release is here! This adds beta support for ImageMagick 7.
303
+ Much thanks to **@Watson1978** for getting the ball rolling on this and to
304
+ **@dlemstra** for the extraordinary amount of work and patience that went into
305
+ seeing it through. RMagick should currently behave the same way under IM7 as it
306
+ did under IM6, so please open an issue if you find anything that seems out of
307
+ the ordinary.
308
+
309
+ ## RMagick 4.0.0
310
+
311
+ This release removes a *lot* of deprecated functionality, so first upgrade to
312
+ 3.2 and handle any deprecation warnings you see there before upgrading to 4.0.
313
+ There are a handful of removals that we could not, or forgot to deprecate, so
314
+ pay special attention to those below. This clears the road for ImageMagick 7
315
+ support in the very near future.
316
+
317
+ Breaking Changes:
318
+
319
+ - Removed deprecated Image#matte and Image#matte= (#731)
320
+ - Removed deprecated Draw#matte. (#736)
321
+ - Removed deprecated ImageList#fx. (#732)
322
+ - Removed deprecated Info#group and Info#group=. (#733)
323
+ - Removed deprecated KernelInfo#show. (#734)
324
+ - Removed deprecated Pixel#opacity and Pixel#opacity=. (#735)
325
+ - Removed deprecated KernelInfo#zero_nans. (#741)
326
+ - Removed deprecated ImageList#map (#740)
327
+ - Removed deprecated Pixel#from_HSL. (#742)
328
+ - Removed deprecated Image#alpha=. (#739)
329
+ - Removed deprecated Pixel#to_HSL. (#745)
330
+ - Removed deprecated Image#blur and Image#blur=. (#746)
331
+ - Removed deprecated Image#sync_profiles. (#754)
332
+ - Removed deprecated Image#opacity=. (#753)
333
+ - Removed deprecated Image#combine. (#752)
334
+ - Removed deprecated Image#map. (#751)
335
+ - Removed deprecated Image#mask=. (#750)
336
+ - Removed deprecated opacity arguments. (#757)
337
+ - Removed deprecated `OpaqueOpacity` and `TransparentOpacity`. (#765)
338
+ - Removed obsolete enumerations. (#766)
339
+
340
+ The following changes *did not have deprecation warnings* in 3.2, so you'll
341
+ want to double check that you update your code if you were relying on the
342
+ existing behavior:
343
+
344
+ - Changed Color#to_s to return an string that contains alpha instead of opacity. (#760)
345
+ - Changed Pixel#to_s to return a string that contains alpha instead of opacity. (#762)
346
+ - Changed Pixel#hash to use alpha instead of opacity. (#763)
347
+ - Changed Pixel#<=> to use alpha instead of opacity. (#764)
348
+ - Removed `BicubicInterpolatePixel` (use `CatromInterpolatePixel` instead) (#768)
349
+ - Removed `FilterInterpolatePixel` (no replacement) (#768)
350
+ - Renamed `NearestNeighborInterpolatePixel` to `NearestInterpolatePixel` (#768)
351
+
352
+ Enhancements:
353
+
354
+ - Add SetQuantumOperator (#755)
355
+
356
+ Bug Fixes:
357
+
358
+ - Fix SEGV in Image#each_profile (#737)
359
+
360
+ ## RMagick 3.2.0
361
+
362
+ This is expected to be the final deprecation release before RMagick 4.0. We
363
+ have added loads of deprecation warnings to clear the pathway for ImageMagick 7
364
+ support. Once you've fixed all of them you should be fine to upgrade to version
365
+ 4.0 without any pain. There are a small handful of edge cases which we could
366
+ not cleanly deprecate, though they should be extremely rare. These will be
367
+ documented in the 4.0 release. Thanks to @dlemstra for the hard work making
368
+ this release possible.
369
+
370
+ The biggest change in moving towards RMagick 4.0 will be the fact that
371
+ `opacity` is deprecated in favor of `alpha`.
372
+
373
+ **NOTE: `opacity` is the opposite of `alpha`!!!**
374
+
375
+ If you are currently passing opacity into methods, you will need to invert the
376
+ value and use the new `alpha:` keyword argument. If you are passing an integer,
377
+ `alpha = 255 - opacity`. An integer `opacity` of 0 is an `alpha` of 255.
378
+
379
+ Also, **major kudos to @Watson1978** for enabling Ruby's memory management in
380
+ (#697). This should go a long way towards improving RMagick's reputation for
381
+ memory usage.
382
+
383
+ Deprecations: (To be removed in RMagick 4.0)
384
+
385
+ - `Info#group` (#578) (no replacement)
386
+ - `Image#blur` (#579) (no replacement)
387
+ - Renamed `AlphaChannelType` to `AlphaChannelOption` (#596)
388
+ - Renamed `DistortImageMethod` to `DistortMethod` (#605)
389
+ - Renamed `FilterTypes` to `FilterType` (#611)
390
+ - Renamed `InterpolatePixelMethod` to `PixelInterpolateMethod` (#613)
391
+ - Renamed `ImageLayerMethod` to `LayerMethod` (#618)
392
+ - Deprecate the `opacity` property of the Pixel class. (use `alpha` instead) (#619)
393
+ - Deprecate old enum names. (use IM7 names instead) (#627)
394
+ - `StaticGravity` (use `CenterGravity` instead) (#638)
395
+ - `Image#sync_profiles` (no replacement) (#640)
396
+ - Deprecate old metric type values (use IM7 names instead) (#647)
397
+ - Deprecate `ResetAlphaChannel` (no replacement) (#644)
398
+ - Deprecate `FlattenAlphaChannel` (no replacement) (#645)
399
+ - Deprecate `MatteChannel` (no replacement) (#646)
400
+ - Deprecate `ConstantVirtualPixelMethod` (no replacement) (#649)
401
+ - Deprecate `IntegerPixel` (no replacement) (#650)
402
+ - Deprecate `Image.combine` (use `ImageList#combine` instead) (#690)
403
+ - Deprecate `Image#opacity` (use `Image#alpha` instead) (#669)
404
+ - Deprecate unnamed argument for opacity in `Image#transparent` (use keyword `alpha:` instead) (#695)
405
+ - Deprecate unnamed argument for opacity in `Image#black_threshold` and `Image#white_threshold.` (use keyword `alpha:` instead) (#709)
406
+ - Deprecate unnamed argument for opacity in `Image#matte_flood_fill` (use keyword `alpha:` instead) (#711)
407
+ - Deprecate unnamed argument for opacity in `Image#paint_transparent` (use keyword `alpha:` instead) (#717)
408
+ - Deprecate unnamed argument for opacity in `Image#transparent_chroma.` (use keyword `alpha:` instead) (#722)
409
+ - Deprecate `Draw#matte` (use `Draw#alpha` instead) (#724)
410
+
411
+ Enhancements:
412
+
413
+ - Many internal adjustments to prepare for ImageMagick 7 support.
414
+ - Added alpha property to the pixel class. (#617)
415
+ - Add combine to the ImageList class. (#589)
416
+ - Add new alpha constants (#651)
417
+ - Add `Image#mask=` (#660)
418
+ - Add `Draw#alpha` to replace `Draw#matte` (#726)
419
+ - Add Draw#image (#720)
420
+ - Add ArchLinux support (#727)
421
+
422
+ Bug Fixes:
423
+
424
+ - Fix `Font#to_s` to not raise error (#569)
425
+ - Fix a SEGV in `Image#reduce_noise` (#576)
426
+ - Fix infinite loop in `Image#compose` (#587)
427
+ - Fix enumeration memory leaks (#592) (#594) (#606) (#610) (#626)
428
+ - Don't allow `Image#class_type` to be set to undefined (#599)
429
+ - Fixed setting the name of the clip path. (#608)
430
+ - Fix memory leak in `Info#view=` (#642)
431
+ - Fix memory leak in `Image.constitute` (#665)
432
+ - Raise error on invalid arguments in `Draw#bezier` (#674)
433
+ - Fix memory leak in `Image#sparse_color` (#683)
434
+ - Prevent negative values for `Image#convolve` (#679)
435
+ - Several cleanups and fixes in the examples
436
+ - Raise error on invalid arguments in `Draw#color` (#691)
437
+ - Raise error on invalid arguments in `Draw#opacity` (#692)
438
+ - Raise error on invalid arguments in `Draw#fill_opacity` (#693)
439
+ - Raise error on invalid arguments in `Draw#stroke_opacity` (#694)
440
+ - Raise error on invalid arguments in `Draw#font_weight` (#696)
441
+ - Raise error on invalid arguments in `Draw#pattern` (#702)
442
+ - Raise error on invalid arguments in `Draw#point` (#703)
443
+ - Raise error on invalid arguments in `Draw#font_size` (#704)
444
+ - Raise error on invalid arguments in `Draw#polygon` (#705)
445
+ - Raise error on invalid arguments in `Draw#polyline` (#706)
446
+ - Raise error on invalid arguments in `Draw#rotate` (#707)
447
+ - Raise error on invalid arguments in `Draw#scale` (#708)
448
+ - Raise error on invalid arguments in `Draw#stroke_dashoffset` (#710)
449
+ - Raise error on invalid arguments in `Draw#translate` (#713)
450
+ - Raise error on invalid arguments in `Draw#text` (#714)
451
+ - Raise error on invalid arguments in `Draw#stroke` (#715)
452
+ - Raise error on invalid arguments in `Draw#matte` (#716)
453
+ - Raise error on invalid arguments in `Draw#skewx`, `Draw#skewy` (#719)
454
+ - Fix `Image#thumbnail` to keep image aspect ratio like ImageMagick (#718)
455
+ - Fix bug where `ImageList#montage` doesn't apply `border_color` & `matte_color` (#601)
456
+ - Fix stack-buffer-overflow in `Draw#annotate` (#725)
457
+ - Enable managed memory feature (#697)
458
+
459
+ Code Quality:
460
+
461
+ - Many tests written
462
+ - Several fixes to reduce compiler warnings.
463
+
464
+ ## RMagick 3.1.0
465
+
466
+ Deprecations: (To be removed in RMagick 4.0)
467
+
468
+ - Support for Ruby 2.3
469
+ - `KernelInfo#zero_nans` (#531) (no replacement)
470
+ - `KernelInfo#show` (#532) (no replacement)
471
+ - `ImageList#fx` (#529) (use `Image#fx` instead)
472
+ - `Image#alpha=` (#530) (use `Image#alpha` instead)
473
+ - `Image#mask=` (#530) (use `Image#mask` instead)
474
+ - `Image#matte` (#530) (use `Image#alpha` instead)
475
+ - `Image#matte=` (#530) (use `Image#alpha` instead)
476
+
477
+ Enhancements:
478
+
479
+ - Support ruby-mswin environment on Windows (#425)
480
+ - Add test for supporting webp format (#406)
481
+ - Add explicit Ruby 2.5 support (#339)
482
+ - Add explicit Ruby 2.6 support (#467)
483
+ - Restore support for ImageMagick 6.7 (#475)
484
+ - Add explicit ImageMagick 6.9 support (#340)
485
+ - Work towards ImageMagick 7.0 support (#470) (#487) (#489) (#492) (#494)
486
+ - Improve error messaging (#480) (#517)
487
+ - Add TimeResource support (#402)
488
+ - Add Image#fx method (#529)
489
+
490
+ Bug Fixes:
491
+
492
+ - Many, many memory leaks fixed
493
+ (#362) (#361) (#360) (#359) (#358) (#357) (#367) (#370) (#364) (#372) (#373)
494
+ (#374) (#375) (#376) (#385) (#384) (#383) (#382) (#381) (#380) (#379) (#378)
495
+ (#377) (#391) (#390) (#389) (#396) (#401) (#409) (#419) (#417) (#416) (#415)
496
+ (#414) (#413) (#412) (#411) (#410) (#418) (#454) (#453) (#452) (#451) (#450)
497
+ (#461) (#460) (#459) (#563)
498
+ - Fix SEGV in ImageList methods with invalid image list (#356)
499
+ - Fix SEGV in Image#recolor (#387)
500
+ - Fix SEGV in Image#profile! (#400)
501
+ - Fix build error on Homebrew environment (#426)
502
+ - Fix Image#quantize and ImageList#quantize could not make dither false (#458)
503
+ - Replace obsoleted $defout to $stdout (#463)
504
+ - Avoid SEGV in monitor feature for Ruby 2.5+ (#462)
505
+ - Fix SEGV in Image#write with CMYKColorspace (#465)
506
+ - Avoid problems related to GC in monitor feature (#468)
507
+ - Get rid of compiler warnings (#484) (#491) (#500)
508
+ - Fix rmfill leaks (#528)
509
+ - Removed automatic allocation of the ImageInfo that is broken. (#547)
510
+ - Fix color histogram (#540)
511
+ - Fix Image#iptc_profile does not work with ImageMagick 6.7 (#558)
512
+
513
+ Code Quality:
514
+
515
+ - Many tests written
516
+ - CI improvements
517
+ - Other refactors
518
+
519
+ ## RMagick 3.0.0
520
+
521
+ Breaking Changes:
522
+
523
+ - Drop support for Ruby < 2.3.
524
+ - Drop support for ImageMagick < 6.8.
525
+ - Raise error when `nil` or empty string are passed to `Image.read`. (#351)
526
+ - Monitor feature disabled on Windows. (#344)
527
+ - Note: ruby versions > 2.4 and ImageMagick versions > 6.8 are not *explicitly*
528
+ supported, yet, but if you are using them already, they should continue to
529
+ work in the same fashion.
530
+
531
+ Enhancements:
532
+
533
+ - Add feature `Image#channel_entropy` (#300)
534
+ - Many quality of life improvements in the codebase.
535
+
536
+ Bug Fixes:
537
+
538
+ - Many memory leaks fixed!
539
+ - Fix `LoadError` on Windows. (#315)
540
+ - fix argument count in `Image#morphology_channel` (#306)
541
+
6
542
  ## RMagick 2.16.0
7
543
 
8
544
  - Support ImageMagick 6.9+ - @ZipoKing
data/CODE_OF_CONDUCT.md CHANGED
@@ -1,13 +1,128 @@
1
- # Contributor Code of Conduct
1
+ # Contributor Covenant Code of Conduct
2
2
 
3
- As contributors and maintainers of this project, we pledge to respect all people who contribute through reporting issues, posting feature requests, updating documentation, submitting pull requests or patches, and other activities.
3
+ ## Our Pledge
4
4
 
5
- We are committed to making participation in this project a harassment-free experience for everyone, regardless of level of experience, gender, gender identity and expression, sexual orientation, disability, personal appearance, body size, race, ethnicity, age, or religion.
5
+ We as members, contributors, and leaders pledge to make participation in our
6
+ community a harassment-free experience for everyone, regardless of age, body
7
+ size, visible or invisible disability, ethnicity, sex characteristics, gender
8
+ identity and expression, level of experience, education, socio-economic status,
9
+ nationality, personal appearance, race, religion, or sexual identity
10
+ and orientation.
6
11
 
7
- Examples of unacceptable behavior by participants include the use of sexual language or imagery, derogatory comments or personal attacks, trolling, public or private harassment, insults, or other unprofessional conduct.
12
+ We pledge to act and interact in ways that contribute to an open, welcoming,
13
+ diverse, inclusive, and healthy community.
8
14
 
9
- Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct. Project maintainers who do not follow the Code of Conduct may be removed from the project team.
15
+ ## Our Standards
10
16
 
11
- Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by opening an issue or contacting one or more of the project maintainers.
17
+ Examples of behavior that contributes to a positive environment for our
18
+ community include:
12
19
 
13
- *This Code of Conduct is adapted from the [Contributor Covenant](http:contributor-covenant.org), version 1.0.0, available at [http://contributor-covenant.org/version/1/0/0/](http://contributor-covenant.org/version/1/0/0/)*
20
+ * Demonstrating empathy and kindness toward other people
21
+ * Being respectful of differing opinions, viewpoints, and experiences
22
+ * Giving and gracefully accepting constructive feedback
23
+ * Accepting responsibility and apologizing to those affected by our mistakes,
24
+ and learning from the experience
25
+ * Focusing on what is best not just for us as individuals, but for the
26
+ overall community
27
+
28
+ Examples of unacceptable behavior include:
29
+
30
+ * The use of sexualized language or imagery, and sexual attention or
31
+ advances of any kind
32
+ * Trolling, insulting or derogatory comments, and personal or political attacks
33
+ * Public or private harassment
34
+ * Publishing others' private information, such as a physical or email
35
+ address, without their explicit permission
36
+ * Other conduct which could reasonably be considered inappropriate in a
37
+ professional setting
38
+
39
+ ## Enforcement Responsibilities
40
+
41
+ Community leaders are responsible for clarifying and enforcing our standards of
42
+ acceptable behavior and will take appropriate and fair corrective action in
43
+ response to any behavior that they deem inappropriate, threatening, offensive,
44
+ or harmful.
45
+
46
+ Community leaders have the right and responsibility to remove, edit, or reject
47
+ comments, commits, code, wiki edits, issues, and other contributions that are
48
+ not aligned to this Code of Conduct, and will communicate reasons for moderation
49
+ decisions when appropriate.
50
+
51
+ ## Scope
52
+
53
+ This Code of Conduct applies within all community spaces, and also applies when
54
+ an individual is officially representing the community in public spaces.
55
+ Examples of representing our community include using an official e-mail address,
56
+ posting via an official social media account, or acting as an appointed
57
+ representative at an online or offline event.
58
+
59
+ ## Enforcement
60
+
61
+ Instances of abusive, harassing, or otherwise unacceptable behavior may be
62
+ reported to the community leaders responsible for enforcement at
63
+ robert@boon.gl. All complaints will be reviewed and investigated promptly and
64
+ fairly.
65
+
66
+ All community leaders are obligated to respect the privacy and security of the
67
+ reporter of any incident.
68
+
69
+ ## Enforcement Guidelines
70
+
71
+ Community leaders will follow these Community Impact Guidelines in determining
72
+ the consequences for any action they deem in violation of this Code of Conduct:
73
+
74
+ ### 1. Correction
75
+
76
+ **Community Impact**: Use of inappropriate language or other behavior deemed
77
+ unprofessional or unwelcome in the community.
78
+
79
+ **Consequence**: A private, written warning from community leaders, providing
80
+ clarity around the nature of the violation and an explanation of why the
81
+ behavior was inappropriate. A public apology may be requested.
82
+
83
+ ### 2. Warning
84
+
85
+ **Community Impact**: A violation through a single incident or series
86
+ of actions.
87
+
88
+ **Consequence**: A warning with consequences for continued behavior. No
89
+ interaction with the people involved, including unsolicited interaction with
90
+ those enforcing the Code of Conduct, for a specified period of time. This
91
+ includes avoiding interactions in community spaces as well as external channels
92
+ like social media. Violating these terms may lead to a temporary or
93
+ permanent ban.
94
+
95
+ ### 3. Temporary Ban
96
+
97
+ **Community Impact**: A serious violation of community standards, including
98
+ sustained inappropriate behavior.
99
+
100
+ **Consequence**: A temporary ban from any sort of interaction or public
101
+ communication with the community for a specified period of time. No public or
102
+ private interaction with the people involved, including unsolicited interaction
103
+ with those enforcing the Code of Conduct, is allowed during this period.
104
+ Violating these terms may lead to a permanent ban.
105
+
106
+ ### 4. Permanent Ban
107
+
108
+ **Community Impact**: Demonstrating a pattern of violation of community
109
+ standards, including sustained inappropriate behavior, harassment of an
110
+ individual, or aggression toward or disparagement of classes of individuals.
111
+
112
+ **Consequence**: A permanent ban from any sort of public interaction within
113
+ the community.
114
+
115
+ ## Attribution
116
+
117
+ This Code of Conduct is adapted from the [Contributor Covenant][homepage],
118
+ version 2.0, available at
119
+ https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
120
+
121
+ Community Impact Guidelines were inspired by [Mozilla's code of conduct
122
+ enforcement ladder](https://github.com/mozilla/diversity).
123
+
124
+ [homepage]: https://www.contributor-covenant.org
125
+
126
+ For answers to common questions about this code of conduct, see the FAQ at
127
+ https://www.contributor-covenant.org/faq. Translations are available at
128
+ https://www.contributor-covenant.org/translations.