rmagick icon indicating copy to clipboard operation
rmagick copied to clipboard

Image or ImageList should be accepted as method argument

Open Watson1978 opened this issue 4 years ago • 0 comments

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.

Watson1978 avatar Apr 27 '20 16:04 Watson1978