class ImageProcessing::MiniMagick::Processor

def composite(overlay = :none, mask: nil, mode: nil, gravity: nil, offset: nil, args: nil, **options, &block)

image.
an additional mask, composite mode, direction or offset of the overlay
Overlays the specified image over the current one. Supports specifying
def composite(overlay = :none, mask: nil, mode: nil, gravity: nil, offset: nil, args: nil, **options, &block)
  return magick.composite if overlay == :none
  if options.key?(:compose)
    warn "[IMAGE_PROCESSING] The :compose parameter in #composite has been renamed to :mode, the :compose alias will be removed in ImageProcessing 2."
    mode = options[:compose]
  end
  if options.key?(:geometry)
    warn "[IMAGE_PROCESSING] The :geometry parameter in #composite has been deprecated and will be removed in ImageProcessing 2. Use :offset instead, e.g. `geometry: \"+10+15\"` should be replaced with `offset: [10, 15]`."
    geometry = options[:geometry]
  end
  geometry = "%+d%+d" % offset if offset
  overlay_path = convert_to_path(overlay, "overlay")
  mask_path    = convert_to_path(mask, "mask") if mask
  magick << overlay_path
  magick << mask_path if mask_path
  magick.compose(mode) if mode
  define(compose: { args: args }) if args
  magick.gravity(gravity) if gravity
  magick.geometry(geometry) if geometry
  yield magick if block_given?
  magick.composite
end