rqrcode_png 0.1.1 → 0.1.2
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.
- data/README.markdown +1 -1
- data/lib/rqrcode_png/image.rb +31 -41
- data/lib/rqrcode_png/qrcode_extensions.rb +7 -11
- data/lib/rqrcode_png/sequence.rb +24 -32
- data/lib/rqrcode_png/version.rb +2 -1
- metadata +18 -7
data/README.markdown
CHANGED
|
@@ -16,7 +16,7 @@ png = qr.to_img # returns an instance of ChunkyPNG
|
|
|
16
16
|
png.resize(90, 90).save("really_cool_qr_image.png")
|
|
17
17
|
```
|
|
18
18
|
|
|
19
|
-
*NOTE:* For now, the :size of the QR code has to be
|
|
19
|
+
*NOTE:* For now, the :size of the QR code has to be 14 or less. Working on this.
|
|
20
20
|
|
|
21
21
|
### Bundler
|
|
22
22
|
```ruby
|
data/lib/rqrcode_png/image.rb
CHANGED
|
@@ -1,43 +1,33 @@
|
|
|
1
1
|
module RQRCodePNG
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
#
|
|
34
|
-
# Returns an appropriately sized, blank (white) image
|
|
35
|
-
#
|
|
36
|
-
def blank_img
|
|
37
|
-
::ChunkyPNG::Image.new( img_size(),
|
|
38
|
-
img_size(),
|
|
39
|
-
WHITE )
|
|
40
|
-
end
|
|
41
|
-
|
|
42
|
-
end
|
|
2
|
+
class Image
|
|
3
|
+
BLACK = ::ChunkyPNG::Color::BLACK
|
|
4
|
+
WHITE = ::ChunkyPNG::Color::WHITE
|
|
5
|
+
TRANSPARENT = ::ChunkyPNG::Color::TRANSPARENT
|
|
6
|
+
|
|
7
|
+
def initialize(qr_code)
|
|
8
|
+
@sequence = Sequence.new(qr_code)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
# Returns an image file of the QR Code
|
|
12
|
+
def render bg_color = WHITE
|
|
13
|
+
png = blank_img(bg_color)
|
|
14
|
+
@sequence.dark_squares_only do |x, y|
|
|
15
|
+
png[y + @sequence.border_width(), x + @sequence.border_width()] = BLACK
|
|
16
|
+
end
|
|
17
|
+
return png
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
private
|
|
21
|
+
|
|
22
|
+
# Returns the size of the image
|
|
23
|
+
def img_size()
|
|
24
|
+
@img_size ||= @sequence.img_size() + @sequence.border_width() * 2
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
# Returns an appropriately sized, blank (white) image
|
|
28
|
+
def blank_img bg_color = WHITE
|
|
29
|
+
::ChunkyPNG::Image.new(img_size(), img_size(), bg_color)
|
|
30
|
+
end
|
|
31
|
+
end
|
|
43
32
|
end
|
|
33
|
+
|
|
@@ -1,13 +1,9 @@
|
|
|
1
1
|
module RQRCodePNG
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
def to_img
|
|
9
|
-
return Image.new(self).render()
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
end
|
|
2
|
+
module QRCodeExtensions
|
|
3
|
+
# This method returns a 33x33 .png of the code
|
|
4
|
+
def to_img(bg_color = ChunkyPNG::Color::WHITE)
|
|
5
|
+
return Image.new(self).render(bg_color)
|
|
6
|
+
end
|
|
7
|
+
end
|
|
13
8
|
end
|
|
9
|
+
|
data/lib/rqrcode_png/sequence.rb
CHANGED
|
@@ -1,37 +1,29 @@
|
|
|
1
1
|
module RQRCodePNG
|
|
2
|
+
class Sequence
|
|
3
|
+
def initialize(qr_code)
|
|
4
|
+
@qr_code = qr_code
|
|
5
|
+
end
|
|
2
6
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
7
|
+
# This method yields the vertices of the dark squares
|
|
8
|
+
def dark_squares_only(&block)
|
|
9
|
+
@qr_code.modules.each_index do |row|
|
|
10
|
+
@qr_code.modules.each_index do |column|
|
|
11
|
+
if @qr_code.dark?(row, column)
|
|
12
|
+
yield row, column
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
8
17
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
@qr_code.modules.each_index do |row|
|
|
14
|
-
@qr_code.modules.each_index do |column|
|
|
15
|
-
if @qr_code.dark?(row, column)
|
|
16
|
-
yield row, column
|
|
17
|
-
end
|
|
18
|
-
end
|
|
19
|
-
end
|
|
18
|
+
# returns the image size by looking at how long the first line of the code is
|
|
19
|
+
def img_size
|
|
20
|
+
@img_size ||= @qr_code.to_s.split("\n").first.size()
|
|
21
|
+
end
|
|
20
22
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
def img_size
|
|
27
|
-
@img_size ||= @qr_code.to_s.split("\n").first.size()
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
#
|
|
31
|
-
# Returns the border, 1/10 of the img size
|
|
32
|
-
def border_width()
|
|
33
|
-
@border ||= img_size() / 10
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
end
|
|
23
|
+
# Returns the border, 1/10 of the img size
|
|
24
|
+
def border_width()
|
|
25
|
+
@border ||= img_size() / 10
|
|
26
|
+
end
|
|
27
|
+
end
|
|
37
28
|
end
|
|
29
|
+
|
data/lib/rqrcode_png/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: rqrcode_png
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.1.
|
|
4
|
+
version: 0.1.2
|
|
5
5
|
prerelease:
|
|
6
6
|
platform: ruby
|
|
7
7
|
authors:
|
|
@@ -9,11 +9,11 @@ authors:
|
|
|
9
9
|
autorequire:
|
|
10
10
|
bindir: bin
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date:
|
|
12
|
+
date: 2013-10-31 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: chunky_png
|
|
16
|
-
requirement:
|
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
|
17
17
|
none: false
|
|
18
18
|
requirements:
|
|
19
19
|
- - ! '>='
|
|
@@ -21,10 +21,15 @@ dependencies:
|
|
|
21
21
|
version: '0'
|
|
22
22
|
type: :runtime
|
|
23
23
|
prerelease: false
|
|
24
|
-
version_requirements:
|
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
25
|
+
none: false
|
|
26
|
+
requirements:
|
|
27
|
+
- - ! '>='
|
|
28
|
+
- !ruby/object:Gem::Version
|
|
29
|
+
version: '0'
|
|
25
30
|
- !ruby/object:Gem::Dependency
|
|
26
31
|
name: rqrcode
|
|
27
|
-
requirement:
|
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
|
28
33
|
none: false
|
|
29
34
|
requirements:
|
|
30
35
|
- - ! '>='
|
|
@@ -32,7 +37,12 @@ dependencies:
|
|
|
32
37
|
version: '0'
|
|
33
38
|
type: :runtime
|
|
34
39
|
prerelease: false
|
|
35
|
-
version_requirements:
|
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
41
|
+
none: false
|
|
42
|
+
requirements:
|
|
43
|
+
- - ! '>='
|
|
44
|
+
- !ruby/object:Gem::Version
|
|
45
|
+
version: '0'
|
|
36
46
|
description: Glues rQRCode together with chunky_png
|
|
37
47
|
email:
|
|
38
48
|
- dcarper@dreamagile.com
|
|
@@ -71,8 +81,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
71
81
|
version: '0'
|
|
72
82
|
requirements: []
|
|
73
83
|
rubyforge_project: rqrcode_png
|
|
74
|
-
rubygems_version: 1.8.
|
|
84
|
+
rubygems_version: 1.8.24
|
|
75
85
|
signing_key:
|
|
76
86
|
specification_version: 3
|
|
77
87
|
summary: Produces a .png from a given QR Code
|
|
78
88
|
test_files: []
|
|
89
|
+
has_rdoc:
|