artbase 0.2.1 → 0.2.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/artbase/collection/base.rb +28 -5
- data/lib/artbase/collection/token.rb +29 -1
- data/lib/artbase/tool.rb +59 -24
- data/lib/artbase/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 28781910e6461bf7c03b8c27a1845633c07681798180edd50f873ec029b9921f
|
4
|
+
data.tar.gz: c19bf7185dfbfe51c0f7ab14b25f4dbecd29314b0ca6088660ab55b4a4c5d40c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 17b24d4328ba8fac495134954a686b59324e7f635d878c2b1ce1c085ad9b21a3a767f87773d7dfccdb7516c47a9cf57621bec10e11daab16ae8610c2670f7ed3
|
7
|
+
data.tar.gz: e009b91051805e13358b6cb172e32ce256f04d03d0eda912dc7f6b73c35a58c6d556c4e9cb301ac8f4f88aa8d9d6e43bf6b376e2509ae856689d7224584f6bee
|
@@ -34,11 +34,17 @@ end
|
|
34
34
|
|
35
35
|
|
36
36
|
|
37
|
-
def make_composite
|
37
|
+
def make_composite( limit: nil,
|
38
|
+
mirror: false )
|
38
39
|
### use well-known / pre-defined (default) grids
|
39
40
|
## (cols x rows) for now - why? why not?
|
40
41
|
|
41
|
-
composite_count =
|
42
|
+
composite_count = if limit
|
43
|
+
limit
|
44
|
+
else
|
45
|
+
@count - @excludes.size
|
46
|
+
end
|
47
|
+
|
42
48
|
cols, rows = case composite_count
|
43
49
|
when 99 then [10, 10]
|
44
50
|
when 100 then [10, 10]
|
@@ -59,6 +65,7 @@ def make_composite
|
|
59
65
|
when 6666 then [100, 67] # 6700 (34 left empty)
|
60
66
|
when 6688 then [100, 67] # 6700 (12 left empty)
|
61
67
|
when 6969 then [100, 70] # 7000 (31 left empty)
|
68
|
+
when 7500 then [100, 75]
|
62
69
|
when 8888 then [100, 89]
|
63
70
|
when 9969 then [100,100]
|
64
71
|
when 10000 then [100,100]
|
@@ -70,17 +77,33 @@ def make_composite
|
|
70
77
|
width: @width,
|
71
78
|
height: @height )
|
72
79
|
|
80
|
+
|
81
|
+
count = 0
|
73
82
|
each_image do |img, id|
|
74
83
|
puts "==> #{id}"
|
75
|
-
composite <<
|
84
|
+
composite << if mirror
|
85
|
+
img.mirror
|
86
|
+
else
|
87
|
+
img
|
88
|
+
end
|
89
|
+
|
90
|
+
count += 1
|
91
|
+
break if limit && count >= limit
|
76
92
|
end
|
77
93
|
|
78
94
|
|
95
|
+
slug = "#{@slug}"
|
96
|
+
slug += "#{limit}" if limit
|
97
|
+
slug += "_left" if mirror
|
79
98
|
|
80
|
-
|
99
|
+
path = "./#{@slug}/tmp/#{slug}-#{@width}x#{@height}.png"
|
100
|
+
puts " saving #{path}..."
|
101
|
+
composite.save( path )
|
81
102
|
|
82
103
|
if composite_count < 1000
|
83
|
-
|
104
|
+
path = "./#{@slug}/tmp/#{slug}-#{@width}x#{@height}@2x.png"
|
105
|
+
puts " saving 2x #{path}..."
|
106
|
+
composite.zoom(2).save( path )
|
84
107
|
end
|
85
108
|
end
|
86
109
|
|
@@ -177,7 +177,8 @@ end
|
|
177
177
|
def pixelate( range=_range, exclude: true,
|
178
178
|
force: false,
|
179
179
|
debug: false,
|
180
|
-
zoom: nil
|
180
|
+
zoom: nil,
|
181
|
+
faster: false )
|
181
182
|
|
182
183
|
range.each do |id|
|
183
184
|
|
@@ -197,6 +198,32 @@ end
|
|
197
198
|
|
198
199
|
|
199
200
|
puts "==> #{id} - reading / decoding #{id} ..."
|
201
|
+
|
202
|
+
|
203
|
+
if faster
|
204
|
+
## note: faster for now only supports
|
205
|
+
## single /one source format
|
206
|
+
## always will use first source format from array for now
|
207
|
+
cmd = "./pixelator "
|
208
|
+
cmd << "./#{@slug}/token-i/#{id}.png"
|
209
|
+
cmd << " " + @sources[0][0].to_s
|
210
|
+
cmd << " " + @sources[0][1].to_s
|
211
|
+
cmd << " " + outpath
|
212
|
+
cmd << " " + @width.to_s
|
213
|
+
cmd << " " + @height.to_s
|
214
|
+
puts "==> #{cmd}..."
|
215
|
+
ret = system( cmd )
|
216
|
+
if ret
|
217
|
+
puts "OK"
|
218
|
+
else
|
219
|
+
puts "!! FAIL"
|
220
|
+
if ret.nil?
|
221
|
+
puts " command not found"
|
222
|
+
else
|
223
|
+
puts " exit code: #{$?}"
|
224
|
+
end
|
225
|
+
end
|
226
|
+
else
|
200
227
|
start = Time.now
|
201
228
|
|
202
229
|
img = Image.read( "./#{@slug}/token-i/#{id}.png" )
|
@@ -246,6 +273,7 @@ end
|
|
246
273
|
exit 1
|
247
274
|
end
|
248
275
|
end
|
276
|
+
end
|
249
277
|
end
|
250
278
|
|
251
279
|
|
data/lib/artbase/tool.rb
CHANGED
@@ -16,7 +16,11 @@ class Tool
|
|
16
16
|
puts "==> welcome to collection tool with args:"
|
17
17
|
pp args
|
18
18
|
|
19
|
-
|
19
|
+
|
20
|
+
options = { faster: false,
|
21
|
+
mirror: false,
|
22
|
+
}
|
23
|
+
|
20
24
|
parser = OptionParser.new do |opts|
|
21
25
|
|
22
26
|
opts.on("--offset NUM", Integer,
|
@@ -35,6 +39,15 @@ class Tool
|
|
35
39
|
## options[ :range] = range
|
36
40
|
## end
|
37
41
|
|
42
|
+
opts.on( "--faster", "Use faster (optional) pixelate binary (default: false)") do
|
43
|
+
options[ :faster ] = true
|
44
|
+
end
|
45
|
+
|
46
|
+
opts.on( "--mirror", "Mirror (or flip) images (default: false)" ) do
|
47
|
+
options[ :mirror ] = true
|
48
|
+
end
|
49
|
+
|
50
|
+
|
38
51
|
opts.on("-h", "--help", "Prints this help") do
|
39
52
|
puts opts
|
40
53
|
exit
|
@@ -58,23 +71,41 @@ class Tool
|
|
58
71
|
command = args[1]
|
59
72
|
subcommand = args[2]
|
60
73
|
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
74
|
+
if File.exist?( "./#{name}/collection.yml" )
|
75
|
+
path = "./#{name}/collection.yml"
|
76
|
+
puts "==> reading collection config >#{path}<..."
|
77
|
+
config = read_yaml( path )
|
78
|
+
|
79
|
+
## todo - use TokenCollection.read( ) or such -- why? why not?
|
80
|
+
## or TokenCollection.build( hash ) ?? - why? why not?
|
81
|
+
self.collection = TokenCollection.new(
|
82
|
+
config['slug'],
|
83
|
+
config['count'],
|
84
|
+
token_base: config['token_base'],
|
85
|
+
image_base: config['image_base'],
|
86
|
+
format: config['format'],
|
87
|
+
source: config['source'],
|
88
|
+
offset: config['offset'] || 0
|
89
|
+
)
|
90
|
+
else
|
91
|
+
## todo/check: keep config.rb alternate name - why? why not?
|
92
|
+
## or use collection.rb only ???
|
93
|
+
path = if File.exist?( "./#{name}/config.rb" )
|
94
|
+
"./#{name}/config.rb"
|
95
|
+
else
|
96
|
+
"./#{name}/collection.rb"
|
97
|
+
end
|
98
|
+
puts "==> reading collection config >#{path}<..."
|
99
|
+
|
100
|
+
## note: assume for now global const COLLECTION gets set/defined!!!
|
101
|
+
## use/change to a script/dsl loader/eval later!!!
|
102
|
+
load( path )
|
103
|
+
|
104
|
+
## pp COLLECTION
|
105
|
+
|
106
|
+
## configure collection (note: requires self)
|
107
|
+
self.collection = COLLECTION
|
108
|
+
end
|
78
109
|
|
79
110
|
if ['d','dl','down', 'download'].include?( command )
|
80
111
|
if subcommand
|
@@ -88,7 +119,8 @@ class Tool
|
|
88
119
|
download_images
|
89
120
|
end
|
90
121
|
elsif ['p', 'px', 'pix', 'pixel', 'pixelate'].include?( command )
|
91
|
-
pixelate( offset: options[ :offset]
|
122
|
+
pixelate( offset: options[ :offset],
|
123
|
+
faster: options[ :faster] )
|
92
124
|
elsif ['m', 'meta'].include?( command )
|
93
125
|
download_meta( offset: options[ :offset] )
|
94
126
|
elsif ['i', 'img', 'image', 'images'].include?( command )
|
@@ -100,7 +132,8 @@ class Tool
|
|
100
132
|
elsif ['x', 'exp', 'export'].include?( command )
|
101
133
|
export_attributes
|
102
134
|
elsif ['c', 'composite'].include?( command )
|
103
|
-
make_composite
|
135
|
+
make_composite( limit: options[ :limit],
|
136
|
+
mirror: options[ :mirror ])
|
104
137
|
elsif ['strip'].include?( command )
|
105
138
|
make_strip
|
106
139
|
elsif ['t', 'test'].include?( command )
|
@@ -112,9 +145,9 @@ class Tool
|
|
112
145
|
puts "bye"
|
113
146
|
end
|
114
147
|
|
115
|
-
def self.make_composite
|
148
|
+
def self.make_composite( limit: nil, mirror: false )
|
116
149
|
puts "==> make composite"
|
117
|
-
@collection.make_composite
|
150
|
+
@collection.make_composite( limit: limit, mirror: mirror )
|
118
151
|
end
|
119
152
|
|
120
153
|
def self.convert_images
|
@@ -165,7 +198,9 @@ class Tool
|
|
165
198
|
@collection.download_images( range )
|
166
199
|
end
|
167
200
|
|
168
|
-
|
201
|
+
|
202
|
+
def self.pixelate( offset:,
|
203
|
+
faster: )
|
169
204
|
puts "==> pixelate"
|
170
205
|
|
171
206
|
range = if offset
|
@@ -174,7 +209,7 @@ class Tool
|
|
174
209
|
@collection._range
|
175
210
|
end
|
176
211
|
|
177
|
-
@collection.pixelate( range )
|
212
|
+
@collection.pixelate( range, faster: faster )
|
178
213
|
end
|
179
214
|
end # class Tool
|
180
215
|
|
data/lib/artbase/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: artbase
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Gerald Bauer
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-09-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: cocos
|