Sha256: c84beaf9d3164d649f7ba33e64f7720197a84223539535d5f42840b465100282

Contents?: true

Size: 745 Bytes

Versions: 3

Compression:

Stored size: 745 Bytes

Contents

module ImageMosaic
  module Operations
    # Takes a composite_image
    # Can then place another image over the top at x, y coordinates and resized to a dimension.
    class Compositor
      def initialize(composite_image, child)
        @composite_image = composite_image
        @child = child
      end

      def save(x, y, type: 'Over', dimension: 200)
        resize_image_to(dimension)
        @composite_image.composite(child_image) do |composite|
          composite.compose type
          composite.geometry "+#{x}+#{y}"
        end
      end

      private

      def resize_image_to(dimension)
        child_image.resize "#{dimension}x#{dimension}^"
      end

      def child_image
        @child.image
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
image_mosaic-0.1.2 lib/image_mosaic/operations/compositor.rb
image_mosaic-0.1.1 lib/image_mosaic/operations/compositor.rb
image_mosaic-0.1.0 lib/image_mosaic/operations/compositor.rb