Sha256: f4f4bfe67b9a2042c605bf41405b8bb775081149036ae7df2c8c60184bfc6fb0

Contents?: true

Size: 1.06 KB

Versions: 137

Compression:

Stored size: 1.06 KB

Contents

module Cairo
  class Context
    module Blur
      def pseudo_blur(radius=3, &block)
        raise ArgumentError, "should specify block" if block.nil?
        pattern = push_group(Cairo::CONTENT_COLOR_ALPHA, false, &block)

        save do
          set_source(pattern)
          paint(0.5)
        end

        1.step(radius, 1) do |i|
          opacity = 0.075 - 0.005 * i
          next if opacity <= 0
          5.downto(1) do |ratio|
            r = i / ratio.to_f
            r_13 = r / 3.0
            r_23 = 2 * r_13
            [
             [-r, 0],
             [-r_23, r_23],
             [-r_23, r_13],
             [0, r],
             [r_13, r_23],
             [r_23, r_23],
             [r, 0],
             [r_23, -r_13],
             [r_23, -r_23],
             [0, -r],
             [-r_13, -r_23],
             [-r_23, -r_23],
            ].each do |x, y|
              save do
                translate(x, y)
                set_source(pattern)
                paint(opacity)
              end
            end
          end
        end
      end
    end
  end
end

Version data entries

137 entries across 129 versions & 2 rubygems

Version Path
cairo-1.15.4 lib/cairo/context/blur.rb
savant-echo-0.1.9 bin/alexa-0.1.2-osx/lib/vendor/ruby/2.2.0/gems/cairo-1.15.2/lib/cairo/context/blur.rb
savant-echo-0.1.9 bin/packaging/vendor/ruby/2.2.0/gems/cairo-1.15.2/lib/cairo/context/blur.rb
savant-echo-0.1.6 bin/packaging/vendor/ruby/2.2.0/gems/cairo-1.15.2/lib/cairo/context/blur.rb
savant-echo-0.1.6 bin/alexa-0.1.2-osx/lib/vendor/ruby/2.2.0/gems/cairo-1.15.2/lib/cairo/context/blur.rb
savant-echo-0.1.5 bin/alexa-0.1.2-osx/lib/vendor/ruby/2.2.0/gems/cairo-1.15.2/lib/cairo/context/blur.rb
savant-echo-0.1.5 bin/packaging/vendor/ruby/2.2.0/gems/cairo-1.15.2/lib/cairo/context/blur.rb
savant-echo-0.1.4 bin/packaging/vendor/ruby/2.2.0/gems/cairo-1.15.2/lib/cairo/context/blur.rb
savant-echo-0.1.4 bin/alexa-0.1.2-osx/lib/vendor/ruby/2.2.0/gems/cairo-1.15.2/lib/cairo/context/blur.rb
savant-echo-0.1.3 bin/packaging/vendor/ruby/2.2.0/gems/cairo-1.15.2/lib/cairo/context/blur.rb
savant-echo-0.1.3 bin/alexa-0.1.2-osx/lib/vendor/ruby/2.2.0/gems/cairo-1.15.2/lib/cairo/context/blur.rb
cairo-1.15.3-x86-mingw32 lib/cairo/context/blur.rb
cairo-1.15.3-x64-mingw32 lib/cairo/context/blur.rb
cairo-1.15.3 lib/cairo/context/blur.rb
cairo-1.14.6 lib/cairo/context/blur.rb
cairo-1.14.6-x86-mingw32 lib/cairo/context/blur.rb
cairo-1.14.6-x64-mingw32 lib/cairo/context/blur.rb
cairo-1.15.2-x64-mingw32 lib/cairo/context/blur.rb
cairo-1.15.2-x86-mingw32 lib/cairo/context/blur.rb
cairo-1.15.2 lib/cairo/context/blur.rb