magick_round_corners 1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +15 -0
- data/.gitignore +18 -0
- data/Gemfile +4 -0
- data/Gemfile.lock +27 -0
- data/README.md +49 -0
- data/lib/magick_round_corners/transformation.rb +19 -0
- data/lib/magick_round_corners/version.rb +3 -0
- data/lib/magick_round_corners.rb +2 -0
- data/magick_round_corners.gemspec +25 -0
- data/output.png +0 -0
- data/sample.png +0 -0
- data/spec/magick_round_corners/transformation.rb +7 -0
- data/spec/magick_round_corners/transformation_spec.rb +21 -0
- data/spec/spec_helper.rb +8 -0
- metadata +104 -0
checksums.yaml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
ZTVlMzY3MTkwZGU2YTIyNTcyYjgyODdlYTk2MGY1YjRlNGViZWM2Mw==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
OGQzYjg4ODhhY2I5Mzk2YTUxOGVhYTAxNzYwYTE3MzFhYmI3ZTIyNw==
|
7
|
+
!binary "U0hBNTEy":
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
ODExNTU3ODE3NTM4NWM1YWM4NTc3NjZlZjgwMDMwNThlMjNhYWQ2ZDFjMDdi
|
10
|
+
ZjdjNWQwYjY5Y2FiNWYyN2I4NjBmOWM2YWQ1YTk4OGZiODQwMGJmYzY3ZDVk
|
11
|
+
YzQ1YTI1Mjc3NWU0ZTRhZTlkMzE1OGZiNDdmYTYyMTUwNjFlZDk=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
ZTE1MjVlYjFlZTUyNDQ4MjUxYmVmOWE5NzBhM2NiNTYzNDA4NzgyMzMxMjZh
|
14
|
+
NjQxMDc1MGNhOWVkYzg1MjE0MGI3NDMwZWIyYjlhZmIzMjVlMDU0ZmI4NWFi
|
15
|
+
Mjg0MjlkZDA5NWVkODVjYTk0YjkxMzZhMTYzMTgwMzJkMDVkZTM=
|
data/.gitignore
ADDED
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
magick_round_corners (1.0)
|
5
|
+
rmagick
|
6
|
+
|
7
|
+
GEM
|
8
|
+
remote: https://rubygems.org/
|
9
|
+
specs:
|
10
|
+
diff-lcs (1.2.4)
|
11
|
+
rmagick (2.13.2)
|
12
|
+
rspec (2.13.0)
|
13
|
+
rspec-core (~> 2.13.0)
|
14
|
+
rspec-expectations (~> 2.13.0)
|
15
|
+
rspec-mocks (~> 2.13.0)
|
16
|
+
rspec-core (2.13.1)
|
17
|
+
rspec-expectations (2.13.0)
|
18
|
+
diff-lcs (>= 1.1.3, < 2.0)
|
19
|
+
rspec-mocks (2.13.1)
|
20
|
+
|
21
|
+
PLATFORMS
|
22
|
+
ruby
|
23
|
+
|
24
|
+
DEPENDENCIES
|
25
|
+
bundler
|
26
|
+
magick_round_corners!
|
27
|
+
rspec
|
data/README.md
ADDED
@@ -0,0 +1,49 @@
|
|
1
|
+
# Magick Round Corners
|
2
|
+
|
3
|
+
This is a simple ruby gem that adds the instance method `round_corners`
|
4
|
+
transformation to `Magick::Image` class.
|
5
|
+
|
6
|
+
|
7
|
+
## Installation
|
8
|
+
|
9
|
+
gem install magick_round_corners
|
10
|
+
|
11
|
+
or you can also can add it to you Gemfile
|
12
|
+
|
13
|
+
gem 'magick_round_corners'
|
14
|
+
|
15
|
+
## Using it
|
16
|
+
|
17
|
+
Given an instance of `Magick::Image`, `image`, you can call `image.round_corners(RADIUS)`
|
18
|
+
where `RADIUS` is the desire radius to round the corners.
|
19
|
+
|
20
|
+
Yes, it is just like that!, Easy? No?
|
21
|
+
|
22
|
+
## Dependency
|
23
|
+
|
24
|
+
* `rmagick`
|
25
|
+
|
26
|
+
## Example
|
27
|
+
|
28
|
+
This example use
|
29
|
+
|
30
|
+

|
31
|
+
|
32
|
+
To generate
|
33
|
+
|
34
|
+

|
35
|
+
|
36
|
+
:001 > require 'rmagick'
|
37
|
+
=> true
|
38
|
+
:002 > require 'magick_round_corners'
|
39
|
+
=> true
|
40
|
+
:003 > image = Magick::Image.read('sample.png').first
|
41
|
+
=> sample.png PNG 300x300 300x300+0+0 DirectClass 8-bit 976b
|
42
|
+
:004 > rounded_corners_image = image.round_corners(50)
|
43
|
+
=> sample.png PNG 300x300 300x300+0+0 DirectClass 8-bit
|
44
|
+
:005 > rounded_corners_image.write('output.png')
|
45
|
+
=> sample.png=>output.png PNG 300x300 300x300+0+0 DirectClass 8-bit
|
46
|
+
|
47
|
+
# Frienly reminder
|
48
|
+
|
49
|
+
When saving/writing out your rounded images, **use** an extension that supports **transparencies** (a.k.a this will not generate rounded jpg images)
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module MagickRoundCorners
|
2
|
+
module Transformation
|
3
|
+
class ::Magick::Image
|
4
|
+
def round_corners(radius = 8)
|
5
|
+
# Set a transparent background: pixels that are transparent will be
|
6
|
+
# discarded from the source image.
|
7
|
+
mask = ::Magick::Image.new(columns, rows) {self.background_color = 'transparent'}
|
8
|
+
|
9
|
+
# Create a white rectangle with rounded corners. This will become the
|
10
|
+
# mask for the area you want to retain in the original image.
|
11
|
+
::Magick::Draw.new.stroke('none').stroke_width(0).fill('white').
|
12
|
+
roundrectangle(0, 0, columns, rows, radius, radius).
|
13
|
+
draw(mask)
|
14
|
+
# Apply the mask and write it out
|
15
|
+
composite(mask, ::Magick::CenterGravity, ::Magick::CopyOpacityCompositeOp)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
$:.push File.expand_path("../lib", __FILE__)
|
2
|
+
require "magick_round_corners/version"
|
3
|
+
|
4
|
+
Gem::Specification.new do |s|
|
5
|
+
s.name = "magick_round_corners"
|
6
|
+
s.version = MagickRoundCorners::VERSION
|
7
|
+
s.platform = Gem::Platform::RUBY
|
8
|
+
s.authors = ["Sebastian Arcila Valenzuela"]
|
9
|
+
s.email = ["sebastian@authy.com"]
|
10
|
+
s.homepage = "https://github.com/sarcilav/magick_round_corners"
|
11
|
+
s.summary = %q{A simple Ruby interface with ImageMagick to transform Images and add round corners.}
|
12
|
+
s.description = %q{A Ruby gem to easily transform images adding round corners.}
|
13
|
+
s.license = "MIT"
|
14
|
+
|
15
|
+
s.add_runtime_dependency 'rmagick'
|
16
|
+
|
17
|
+
s.add_development_dependency 'rspec'
|
18
|
+
s.add_development_dependency 'bundler'
|
19
|
+
|
20
|
+
s.files = `git ls-files`.split("\n")
|
21
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
22
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
23
|
+
s.require_paths = ["lib"]
|
24
|
+
end
|
25
|
+
|
data/output.png
ADDED
Binary file
|
data/sample.png
ADDED
Binary file
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe "MagickRoundCorners::Transformation" do
|
4
|
+
it "should add round corners method to an instance of Magick::Image" do
|
5
|
+
::Magick::Image.new(1,1).should respond_to(:round_corners)
|
6
|
+
end
|
7
|
+
|
8
|
+
describe "Behavior" do
|
9
|
+
before do
|
10
|
+
@img = ::Magick::Image.new(10, 20)
|
11
|
+
end
|
12
|
+
|
13
|
+
it "should interface with a mask" do
|
14
|
+
dummy_mask = double()
|
15
|
+
::Magick::Image.should_receive(:new).with(10, 20).and_return(dummy_mask)
|
16
|
+
::Magick::Draw.stub_chain(:new, :stroke, :stroke_width, :fill, :roundrectangle, :draw)
|
17
|
+
@img.should_receive(:composite).with(dummy_mask, ::Magick::CenterGravity, ::Magick::CopyOpacityCompositeOp).and_return(@img)
|
18
|
+
@img.round_corners
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
data/spec/spec_helper.rb
ADDED
metadata
ADDED
@@ -0,0 +1,104 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: magick_round_corners
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: '1.0'
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Sebastian Arcila Valenzuela
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2013-05-21 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: rmagick
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ! '>='
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ! '>='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rspec
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ! '>='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ! '>='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: bundler
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ! '>='
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ! '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
description: A Ruby gem to easily transform images adding round corners.
|
56
|
+
email:
|
57
|
+
- sebastian@authy.com
|
58
|
+
executables: []
|
59
|
+
extensions: []
|
60
|
+
extra_rdoc_files: []
|
61
|
+
files:
|
62
|
+
- .gitignore
|
63
|
+
- Gemfile
|
64
|
+
- Gemfile.lock
|
65
|
+
- README.md
|
66
|
+
- lib/magick_round_corners.rb
|
67
|
+
- lib/magick_round_corners/transformation.rb
|
68
|
+
- lib/magick_round_corners/version.rb
|
69
|
+
- magick_round_corners.gemspec
|
70
|
+
- output.png
|
71
|
+
- sample.png
|
72
|
+
- spec/magick_round_corners/transformation.rb
|
73
|
+
- spec/magick_round_corners/transformation_spec.rb
|
74
|
+
- spec/spec_helper.rb
|
75
|
+
homepage: https://github.com/sarcilav/magick_round_corners
|
76
|
+
licenses:
|
77
|
+
- MIT
|
78
|
+
metadata: {}
|
79
|
+
post_install_message:
|
80
|
+
rdoc_options: []
|
81
|
+
require_paths:
|
82
|
+
- lib
|
83
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
84
|
+
requirements:
|
85
|
+
- - ! '>='
|
86
|
+
- !ruby/object:Gem::Version
|
87
|
+
version: '0'
|
88
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
89
|
+
requirements:
|
90
|
+
- - ! '>='
|
91
|
+
- !ruby/object:Gem::Version
|
92
|
+
version: '0'
|
93
|
+
requirements: []
|
94
|
+
rubyforge_project:
|
95
|
+
rubygems_version: 2.0.3
|
96
|
+
signing_key:
|
97
|
+
specification_version: 4
|
98
|
+
summary: A simple Ruby interface with ImageMagick to transform Images and add round
|
99
|
+
corners.
|
100
|
+
test_files:
|
101
|
+
- spec/magick_round_corners/transformation.rb
|
102
|
+
- spec/magick_round_corners/transformation_spec.rb
|
103
|
+
- spec/spec_helper.rb
|
104
|
+
has_rdoc:
|