maxim/skeptick

View on GitHub
lib/skeptick/sugar/torn_paper_image.rb

Summary

Maintainability
A
25 mins
Test Coverage
require 'skeptick/sugar/compose'

module Skeptick
  module TornPaperImage
    def torn_paper_image(*args, &blk)
      opts = args.last.is_a?(Hash) ? args.pop : {}
      spread    = opts[:spread]    || 1
      blur      = opts[:blur]      || '0x.7'
      threshold = opts[:threshold] || 50

      compose(:copy_opacity, *args) do
        convert(&blk) if block_given?
        convert do
          set '+clone'
          set '-virtual-pixel', 'transparent'
          set :spread, spread
          set :channel, 'A'
          set :blur, blur
          set :threshold, "#{threshold}%"
        end

        set :blur, blur
      end
    end
  end

  class DslContext
    include TornPaperImage
  end

  include TornPaperImage
end