rmagick
rmagick copied to clipboard
Image or ImageList should be accepted as method argument
Description
The some methods accept Magick::Image
or Magick::ImageList
via rm_cur_image()
C function.
For example, Magick::TextureFill.new
accepts Magick::Image
or Magick::ImageList
.
https://github.com/rmagick/rmagick/blob/913735caf505b7e35bcf63682495f4ec2137efda/ext/RMagick/rmfill.c#L689-L690
require 'rmagick'
granite = Magick::ImageList.new('granite:') # generates ImageList object
texture = Magick::TextureFill.new(granite)
However, Magick::TextureFill#fill
accepts only Magick::Image
.
https://github.com/rmagick/rmagick/blob/913735caf505b7e35bcf63682495f4ec2137efda/ext/RMagick/rmfill.c#L719
require 'rmagick'
granite = Magick::ImageList.new('granite:')
texture = Magick::TextureFill.new(granite)
list = Magick::ImageList.new
list.new_image(100, 100)
texture.fill(list)
# => rmagick.rb:8:in `fill': wrong argument type Magick::ImageList (expected Data) (TypeError)
I think It would be better to unify the interfaces and it would be better to use rm_cur_image()
in the methods that accept only Image object as argument.