def composite overlay, mode, opts = {}
      unless overlay.is_a? Array
        overlay = [overlay]
      end
      unless mode.is_a? Array
        mode = [mode]
      end

      mode = mode.map do |x|
        GObject::GValue.from_nick Vips::BLEND_MODE_TYPE, x
      end

      Vips::Image.composite([self] + overlay, mode, opts)
    end
def composite overlay, mode, opts = {}
      unless overlay.is_a? Array
        overlay = [overlay]
      end
      unless mode.is_a? Array
        mode = [mode]
      end

      mode = mode.map do |x|
        GObject::GValue.from_nick Vips::BLEND_MODE_TYPE, x
      end

      Vips::Image.composite([self] + overlay, mode, opts)
    end
Composite a set of images with a set of blend modes.

 @param overlay [Image, Array<Image>] images to composite
 @param mode [BlendMode, Array<BlendMode>] blend modes to use
 @param opts [Hash] Set of options
 @option opts [Vips::Interpretation] :compositing_space Composite images in this colour space
 @option opts [Boolean] :premultiplied Images have premultiplied alpha
 @return [Image] blended image