pixelchart 1.0.1 → 1.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 +4 -4
- data/bin/pixelchart +3 -3
- data/lib/pixelchart/version.rb +1 -1
- data/lib/pixelchart.rb +17 -24
- metadata +15 -123
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a1f640ed1d4efd1ddce15e9cad71409d881b573cbd7f4f5c2bcebe1a1ae9858b
|
4
|
+
data.tar.gz: d1e054a27279e09afcb2ee911a952491f66a60807ee2d73a84fef80765652867
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0605e4ce1ea180a02c6c38214f52b73e3d365e15eaf35831171a9164bffe034f662d95890f5803087f7d76f48c4e10aae1d77a8cfb241baa16e3698be02d2791
|
7
|
+
data.tar.gz: aa3ed4456b1b790aea5f2d3af44ef3421a1799865c81d35a65152ee55c780e9229ac297aafb9350551f2399a0ba63e9a1fc7e49b2bf2848fa28be427c526c519
|
data/bin/pixelchart
CHANGED
@@ -24,7 +24,7 @@ doc = <<~DOCOPT
|
|
24
24
|
-w <pixel>, --width <pixel> Width of the output image (in number pixel)
|
25
25
|
-h <pixel>, --height <pixel> Height of the output image (in number pixel)
|
26
26
|
-c <colors>, --colors <colors> Colors of the image (in RGB or random)
|
27
|
-
-b <name>, --backend <name> Image processing backend (rmagick or
|
27
|
+
-b <name>, --backend <name> Image processing backend (rmagick or rubyvips)
|
28
28
|
-s <ratio>, --scale <ratio> Scale ratio or dimensions
|
29
29
|
--area <size> Area, number of values, total number of pixel
|
30
30
|
--no-color Disable colorized output
|
@@ -70,7 +70,7 @@ begin
|
|
70
70
|
end
|
71
71
|
pc = PixelChart.new(data, width, height, opts)
|
72
72
|
pc.draw(filename, opts)
|
73
|
-
puts Paint['[+]', :green]
|
73
|
+
puts "#{Paint['[+]', :green]} Image saved"
|
74
74
|
elsif args['calc']
|
75
75
|
dimensions = nil
|
76
76
|
if args['--area']
|
@@ -81,7 +81,7 @@ begin
|
|
81
81
|
end
|
82
82
|
puts 'Possible dimensions: width x height or height x width'
|
83
83
|
dimensions.each do |xy|
|
84
|
-
puts Paint[xy[0], :magenta]
|
84
|
+
puts "#{Paint[xy[0], :magenta]} x #{Paint[xy[1], :magenta]}"
|
85
85
|
end
|
86
86
|
end
|
87
87
|
rescue Docopt::Exit => e
|
data/lib/pixelchart/version.rb
CHANGED
data/lib/pixelchart.rb
CHANGED
@@ -19,7 +19,7 @@ class PixelChart
|
|
19
19
|
# @param width [Integer] Desired width of the image.
|
20
20
|
# @param height [Integer] Desired height of the image.
|
21
21
|
# @option opts [Array<Color>] :colors Must be an array containing 2 values.
|
22
|
-
# Each value is either the
|
22
|
+
# Each value is either the `:random` symbol to get a random color or a
|
23
23
|
# color given as RGB, so 3 integers in an array.
|
24
24
|
# @option opts [Scale] :scale Scale the image to dimensions or with a ratio.
|
25
25
|
# Ratio must be a positive (non-nul) float or integer, and dimensions must
|
@@ -41,14 +41,15 @@ class PixelChart
|
|
41
41
|
# Generate and save the image
|
42
42
|
# @param filename [String] Name of the output image.
|
43
43
|
# @param opts [Hash] options for image processing
|
44
|
-
# @option opts [Symbol] :backend Image processing backend,
|
45
|
-
# Rmagick/Imagemagick or
|
44
|
+
# @option opts [Symbol] :backend Image processing backend, `:rmagick` for
|
45
|
+
# Rmagick/Imagemagick or `:rubyvips` for ruby-vips/libvips.
|
46
46
|
def draw(filename, opts = {})
|
47
47
|
opts[:backend] ||= :rmagick
|
48
48
|
backend = check_backend(opts[:backend])
|
49
|
-
|
49
|
+
case backend
|
50
|
+
when :rmagick
|
50
51
|
draw_rmagick(filename)
|
51
|
-
|
52
|
+
when :rubyvips
|
52
53
|
draw_rubyvips(filename)
|
53
54
|
end
|
54
55
|
end
|
@@ -103,13 +104,12 @@ class PixelChart
|
|
103
104
|
end
|
104
105
|
end
|
105
106
|
unless @scale.nil?
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
end
|
107
|
+
case @scale
|
108
|
+
when Numeric
|
109
|
+
raise(ArgumentError, 'Scale must be a ratio or a set of width and height') if @scale.zero?
|
110
110
|
|
111
111
|
img.scale!(@scale)
|
112
|
-
|
112
|
+
when Array
|
113
113
|
img.scale!(@scale[0], @scale[1])
|
114
114
|
else
|
115
115
|
raise(ArgumentError, 'Scale must be a ratio or a set of width and height')
|
@@ -138,9 +138,7 @@ class PixelChart
|
|
138
138
|
# @param data [Object] The object to check
|
139
139
|
# @return [Object] Untouched input object
|
140
140
|
def check_int(data)
|
141
|
-
unless data.is_a?(Integer)
|
142
|
-
raise(ArgumentError, 'Argument is not an integer')
|
143
|
-
end
|
141
|
+
raise(ArgumentError, 'Argument is not an integer') unless data.is_a?(Integer)
|
144
142
|
|
145
143
|
data
|
146
144
|
end
|
@@ -170,18 +168,15 @@ class PixelChart
|
|
170
168
|
raise(ArgumentError, 'Argument is not an array') unless data.is_a?(Array)
|
171
169
|
|
172
170
|
data.each do |item|
|
173
|
-
|
171
|
+
case item
|
172
|
+
when :random
|
174
173
|
# nothing
|
175
|
-
|
174
|
+
when Array
|
176
175
|
raise(ArgumentError, 'RGB must contains 3 values') unless item.size == 3
|
177
176
|
|
178
177
|
item.each do |i|
|
179
|
-
unless i.is_a?(Integer)
|
180
|
-
|
181
|
-
end
|
182
|
-
unless (0..255).include?(i)
|
183
|
-
raise(ArgumentError, 'RGB values must be between 0 and 255')
|
184
|
-
end
|
178
|
+
raise(ArgumentError, 'RGB values are not integers') unless i.is_a?(Integer)
|
179
|
+
raise(ArgumentError, 'RGB values must be between 0 and 255') unless (0..255).include?(i)
|
185
180
|
end
|
186
181
|
else
|
187
182
|
raise(ArgumentError, 'Colors are not a RGB array or :random')
|
@@ -196,9 +191,7 @@ class PixelChart
|
|
196
191
|
# @return [Object] Untouched input object
|
197
192
|
def check_backend(data)
|
198
193
|
accepted_values = %i[rmagick rubyvips]
|
199
|
-
unless accepted_values.include?(data)
|
200
|
-
raise(ArgumentError, "Backend must be #{accepted_values.join(' or ')}")
|
201
|
-
end
|
194
|
+
raise(ArgumentError, "Backend must be #{accepted_values.join(' or ')}") unless accepted_values.include?(data)
|
202
195
|
|
203
196
|
data
|
204
197
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pixelchart
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alexandre ZANNI
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-01-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: docopt
|
@@ -66,118 +66,6 @@ dependencies:
|
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '2.0'
|
69
|
-
- !ruby/object:Gem::Dependency
|
70
|
-
name: bundler
|
71
|
-
requirement: !ruby/object:Gem::Requirement
|
72
|
-
requirements:
|
73
|
-
- - "~>"
|
74
|
-
- !ruby/object:Gem::Version
|
75
|
-
version: '2.1'
|
76
|
-
type: :development
|
77
|
-
prerelease: false
|
78
|
-
version_requirements: !ruby/object:Gem::Requirement
|
79
|
-
requirements:
|
80
|
-
- - "~>"
|
81
|
-
- !ruby/object:Gem::Version
|
82
|
-
version: '2.1'
|
83
|
-
- !ruby/object:Gem::Dependency
|
84
|
-
name: commonmarker
|
85
|
-
requirement: !ruby/object:Gem::Requirement
|
86
|
-
requirements:
|
87
|
-
- - "~>"
|
88
|
-
- !ruby/object:Gem::Version
|
89
|
-
version: '0.21'
|
90
|
-
type: :development
|
91
|
-
prerelease: false
|
92
|
-
version_requirements: !ruby/object:Gem::Requirement
|
93
|
-
requirements:
|
94
|
-
- - "~>"
|
95
|
-
- !ruby/object:Gem::Version
|
96
|
-
version: '0.21'
|
97
|
-
- !ruby/object:Gem::Dependency
|
98
|
-
name: github-markup
|
99
|
-
requirement: !ruby/object:Gem::Requirement
|
100
|
-
requirements:
|
101
|
-
- - "~>"
|
102
|
-
- !ruby/object:Gem::Version
|
103
|
-
version: '3.0'
|
104
|
-
type: :development
|
105
|
-
prerelease: false
|
106
|
-
version_requirements: !ruby/object:Gem::Requirement
|
107
|
-
requirements:
|
108
|
-
- - "~>"
|
109
|
-
- !ruby/object:Gem::Version
|
110
|
-
version: '3.0'
|
111
|
-
- !ruby/object:Gem::Dependency
|
112
|
-
name: minitest
|
113
|
-
requirement: !ruby/object:Gem::Requirement
|
114
|
-
requirements:
|
115
|
-
- - "~>"
|
116
|
-
- !ruby/object:Gem::Version
|
117
|
-
version: '5.12'
|
118
|
-
type: :development
|
119
|
-
prerelease: false
|
120
|
-
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
requirements:
|
122
|
-
- - "~>"
|
123
|
-
- !ruby/object:Gem::Version
|
124
|
-
version: '5.12'
|
125
|
-
- !ruby/object:Gem::Dependency
|
126
|
-
name: rake
|
127
|
-
requirement: !ruby/object:Gem::Requirement
|
128
|
-
requirements:
|
129
|
-
- - "~>"
|
130
|
-
- !ruby/object:Gem::Version
|
131
|
-
version: '13.0'
|
132
|
-
type: :development
|
133
|
-
prerelease: false
|
134
|
-
version_requirements: !ruby/object:Gem::Requirement
|
135
|
-
requirements:
|
136
|
-
- - "~>"
|
137
|
-
- !ruby/object:Gem::Version
|
138
|
-
version: '13.0'
|
139
|
-
- !ruby/object:Gem::Dependency
|
140
|
-
name: redcarpet
|
141
|
-
requirement: !ruby/object:Gem::Requirement
|
142
|
-
requirements:
|
143
|
-
- - "~>"
|
144
|
-
- !ruby/object:Gem::Version
|
145
|
-
version: '3.5'
|
146
|
-
type: :development
|
147
|
-
prerelease: false
|
148
|
-
version_requirements: !ruby/object:Gem::Requirement
|
149
|
-
requirements:
|
150
|
-
- - "~>"
|
151
|
-
- !ruby/object:Gem::Version
|
152
|
-
version: '3.5'
|
153
|
-
- !ruby/object:Gem::Dependency
|
154
|
-
name: rubocop
|
155
|
-
requirement: !ruby/object:Gem::Requirement
|
156
|
-
requirements:
|
157
|
-
- - "~>"
|
158
|
-
- !ruby/object:Gem::Version
|
159
|
-
version: '0.80'
|
160
|
-
type: :development
|
161
|
-
prerelease: false
|
162
|
-
version_requirements: !ruby/object:Gem::Requirement
|
163
|
-
requirements:
|
164
|
-
- - "~>"
|
165
|
-
- !ruby/object:Gem::Version
|
166
|
-
version: '0.80'
|
167
|
-
- !ruby/object:Gem::Dependency
|
168
|
-
name: yard
|
169
|
-
requirement: !ruby/object:Gem::Requirement
|
170
|
-
requirements:
|
171
|
-
- - "~>"
|
172
|
-
- !ruby/object:Gem::Version
|
173
|
-
version: '0.9'
|
174
|
-
type: :development
|
175
|
-
prerelease: false
|
176
|
-
version_requirements: !ruby/object:Gem::Requirement
|
177
|
-
requirements:
|
178
|
-
- - "~>"
|
179
|
-
- !ruby/object:Gem::Version
|
180
|
-
version: '0.9'
|
181
69
|
description: Create a binary pixel map
|
182
70
|
email: alexandre.zanni@engineer.com
|
183
71
|
executables:
|
@@ -189,33 +77,37 @@ files:
|
|
189
77
|
- bin/pixelchart
|
190
78
|
- lib/pixelchart.rb
|
191
79
|
- lib/pixelchart/version.rb
|
192
|
-
homepage: https://
|
80
|
+
homepage: https://noraj.github.io/PixelChart/
|
193
81
|
licenses:
|
194
82
|
- MIT
|
195
83
|
metadata:
|
196
84
|
yard.run: yard
|
197
85
|
bug_tracker_uri: https://github.com/noraj/PixelChart/issues
|
198
86
|
changelog_uri: https://github.com/noraj/PixelChart/blob/master/pages/CHANGELOG.md
|
199
|
-
documentation_uri: https://
|
200
|
-
homepage_uri: https://
|
87
|
+
documentation_uri: https://noraj.github.io/PixelChart/yard/
|
88
|
+
homepage_uri: https://noraj.github.io/PixelChart/
|
201
89
|
source_code_uri: https://github.com/noraj/PixelChart
|
202
|
-
|
90
|
+
rubygems_mfa_required: 'true'
|
91
|
+
post_install_message:
|
203
92
|
rdoc_options: []
|
204
93
|
require_paths:
|
205
94
|
- lib
|
206
95
|
required_ruby_version: !ruby/object:Gem::Requirement
|
207
96
|
requirements:
|
208
|
-
- - "
|
97
|
+
- - ">="
|
98
|
+
- !ruby/object:Gem::Version
|
99
|
+
version: 2.7.0
|
100
|
+
- - "<"
|
209
101
|
- !ruby/object:Gem::Version
|
210
|
-
version: '2
|
102
|
+
version: '3.2'
|
211
103
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
212
104
|
requirements:
|
213
105
|
- - ">="
|
214
106
|
- !ruby/object:Gem::Version
|
215
107
|
version: '0'
|
216
108
|
requirements: []
|
217
|
-
rubygems_version: 3.
|
218
|
-
signing_key:
|
109
|
+
rubygems_version: 3.3.3
|
110
|
+
signing_key:
|
219
111
|
specification_version: 4
|
220
112
|
summary: Create a binary pixel map
|
221
113
|
test_files: []
|