shibainus 0.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 +7 -0
- data/CHANGELOG.md +3 -0
- data/Manifest.txt +8 -0
- data/README.md +111 -0
- data/Rakefile +38 -0
- data/config/spritesheet.csv +23 -0
- data/config/spritesheet.png +0 -0
- data/lib/shibainus/version.rb +23 -0
- data/lib/shibainus.rb +96 -0
- metadata +107 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 770d6505218c085495ce8ba842b0ecd9cf5b75d92b9557fb1b4e9978af816cef
|
4
|
+
data.tar.gz: 49c8f55c903649b369ec01d9039cb2480a96b4ac8b823a288fa17aa36a77bcb8
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 39651aeda7aa240b1884494170c9b477c4f2ffcd9bc003564563a993419e8be6676a08652a03485fbf22d6709de527ffa369bd77115c744afa05cf10098d773b
|
7
|
+
data.tar.gz: cf639cd9ad45826e01a69b3b3681a54032e85caad9dc415a52a6911f5233952b3362c477af158bcc9e849286a64ce1738dd0d6e8adfacf181017beab9ecb1b6b
|
data/CHANGELOG.md
ADDED
data/Manifest.txt
ADDED
data/README.md
ADDED
@@ -0,0 +1,111 @@
|
|
1
|
+
# Shiba Inus (Pixel Doge)
|
2
|
+
|
3
|
+
shibainus - generate your own 24×24 pixel shiba inu (pixel) doge images (off chain) from text attributes (via built-in spritesheet); incl. 2x/4x/8x zoom for bigger sizes and more
|
4
|
+
|
5
|
+
|
6
|
+
* home :: [github.com/pixelartexchange/pixelart](https://github.com/pixelartexchange/pixelart)
|
7
|
+
* bugs :: [github.com/pixelartexchange/pixelart/issues](https://github.com/pixelartexchange/pixelart/issues)
|
8
|
+
* gem :: [rubygems.org/gems/shibainus](https://rubygems.org/gems/shibainus)
|
9
|
+
* rdoc :: [rubydoc.info/gems/shibainus](http://rubydoc.info/gems/shibainus)
|
10
|
+
|
11
|
+
|
12
|
+
|
13
|
+
|
14
|
+
## Usage
|
15
|
+
|
16
|
+
Let's generate some super-rare never-before-seen
|
17
|
+
shiba inu (pixel doge):
|
18
|
+
|
19
|
+
```ruby
|
20
|
+
require 'shibainus'
|
21
|
+
|
22
|
+
doge = Shiba::Image.generate( 'Classic', '3D Glasses' )
|
23
|
+
doge.save( "doge1.png")
|
24
|
+
doge.zoom(4).save( "doge1@4x.png" )
|
25
|
+
|
26
|
+
doge = Shiba::Image.generate( 'Dark', 'Tiara', 'Big Shades' )
|
27
|
+
doge.save( "doge2.png")
|
28
|
+
doge.zoom(4).save( "doge2@4x.png" )
|
29
|
+
|
30
|
+
doge = Shiba::Image.generate( 'Zombie', 'Crazy Hair' )
|
31
|
+
doge.save( "doge3.png")
|
32
|
+
doge.zoom(4).save( "doge3@4x.png" )
|
33
|
+
|
34
|
+
doge = Shiba::Image.generate( 'Alien', 'Headband' )
|
35
|
+
doge.save( "doge4.png")
|
36
|
+
doge.zoom(4).save( "doge4@4x.png" )
|
37
|
+
```
|
38
|
+
|
39
|
+
Voila!
|
40
|
+
|
41
|
+

|
42
|
+

|
43
|
+

|
44
|
+

|
45
|
+
|
46
|
+
In 4x:
|
47
|
+
|
48
|
+

|
49
|
+

|
50
|
+

|
51
|
+

|
52
|
+
|
53
|
+
|
54
|
+
And so on.
|
55
|
+
|
56
|
+
### Bonus - Look-Up Attributes (Via Built-In Spritesheet)
|
57
|
+
|
58
|
+
|
59
|
+
Let's look-up some attributes:
|
60
|
+
|
61
|
+
```ruby
|
62
|
+
classic = Shiba::Sheet.find_by( name: 'Classic' )
|
63
|
+
crazy_hair = Shiba::Sheet.find_by( name: 'Crazy Hair' )
|
64
|
+
beanie = Shiba::Sheet.find_by( name: 'Beanie' )
|
65
|
+
big_shades = Shiba::Sheet.find_by( name: 'Big Shades' )
|
66
|
+
|
67
|
+
classic.save( "classic.png" )
|
68
|
+
crazy_hair.save( "crazy_hair.png" )
|
69
|
+
beanie.save( "beanie.png" )
|
70
|
+
big_shades.save( "big_shades.png" )
|
71
|
+
|
72
|
+
classic.zoom( 4 ).save( "classic@4x.png" )
|
73
|
+
crazy_hair.zoom( 4 ).save( "crazy_hair@4x.png" )
|
74
|
+
beanie.zoom( 4 ).save( "beanie@4x.png" )
|
75
|
+
big_shades.zoom( 4 ).save( "big_shades@4x.png" )
|
76
|
+
```
|
77
|
+
|
78
|
+
Voila!
|
79
|
+
|
80
|
+

|
81
|
+

|
82
|
+

|
83
|
+

|
84
|
+
|
85
|
+
In 4x:
|
86
|
+
|
87
|
+
|
88
|
+

|
89
|
+

|
90
|
+

|
91
|
+

|
92
|
+
|
93
|
+
And so on.
|
94
|
+
|
95
|
+
|
96
|
+
|
97
|
+
## Appendix - All Built-In Spritesheet Attributes (24x24px)
|
98
|
+
|
99
|
+
See the [**spritesheet.csv**](https://github.com/pixelartexchange/pixelart/blob/master/shibainus/config/spritesheet.csv) dataset for all attribute names (w/ categories).
|
100
|
+
|
101
|
+

|
102
|
+
|
103
|
+
(Source: [**shibainus/spritesheet.png**](https://github.com/pixelartexchange/pixelart/blob/master/shibainus/config/spritesheet.png))
|
104
|
+
|
105
|
+
|
106
|
+
|
107
|
+
|
108
|
+
|
109
|
+
## Questions? Comments?
|
110
|
+
|
111
|
+
Post them on the [CryptoPunksDev reddit](https://old.reddit.com/r/CryptoPunksDev). Thanks.
|
data/Rakefile
ADDED
@@ -0,0 +1,38 @@
|
|
1
|
+
require 'hoe'
|
2
|
+
require './lib/shibainus/version.rb'
|
3
|
+
|
4
|
+
###
|
5
|
+
# hack/ quick fix for broken intuit_values - overwrite with dummy
|
6
|
+
class Hoe
|
7
|
+
def intuit_values( input ); end
|
8
|
+
end
|
9
|
+
|
10
|
+
|
11
|
+
|
12
|
+
Hoe.spec 'shibainus' do
|
13
|
+
|
14
|
+
self.version = Shibainus::VERSION
|
15
|
+
|
16
|
+
self.summary = "shibainus - generate your own 24×24 pixel shiba inu (pixel) doge images (off chain) from text attributes (via built-in spritesheet); incl. 2x/4x/8x zoom for bigger sizes and more"
|
17
|
+
self.description = summary
|
18
|
+
|
19
|
+
self.urls = { home: 'https://github.com/pixelartexchange/pixelart' }
|
20
|
+
|
21
|
+
self.author = 'Gerald Bauer'
|
22
|
+
self.email = 'wwwmake@googlegroups.com'
|
23
|
+
|
24
|
+
# switch extension to .markdown for gihub formatting
|
25
|
+
self.readme_file = 'README.md'
|
26
|
+
self.history_file = 'CHANGELOG.md'
|
27
|
+
|
28
|
+
self.extra_deps = [
|
29
|
+
['pixelart', '>= 1.3.2'],
|
30
|
+
]
|
31
|
+
|
32
|
+
self.licenses = ['Public Domain']
|
33
|
+
|
34
|
+
self.spec_extras = {
|
35
|
+
required_ruby_version: '>= 2.3'
|
36
|
+
}
|
37
|
+
|
38
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
id, category, name, more_names
|
2
|
+
0, , classic,
|
3
|
+
1, , dark,
|
4
|
+
2, , zombie,
|
5
|
+
3, , alien,
|
6
|
+
4, , crazyhair,
|
7
|
+
5, , beanie,
|
8
|
+
6, , cap,
|
9
|
+
7, , capforward,
|
10
|
+
8, , cowboyhat,
|
11
|
+
9, , fedora,
|
12
|
+
10, , knittedcap,
|
13
|
+
11, , tophat,
|
14
|
+
12, , bandana,
|
15
|
+
13, , headband,
|
16
|
+
14, , tiara,
|
17
|
+
15, , 3dglasses,
|
18
|
+
16, , bigshades,
|
19
|
+
17, , classicshades,
|
20
|
+
18, , regularshades,
|
21
|
+
19, , smallshades,
|
22
|
+
20, , nerdglasses,
|
23
|
+
21, , eyepatch,
|
Binary file
|
@@ -0,0 +1,23 @@
|
|
1
|
+
|
2
|
+
|
3
|
+
module Shibainus
|
4
|
+
|
5
|
+
MAJOR = 0
|
6
|
+
MINOR = 1
|
7
|
+
PATCH = 0
|
8
|
+
VERSION = [MAJOR,MINOR,PATCH].join('.')
|
9
|
+
|
10
|
+
def self.version
|
11
|
+
VERSION
|
12
|
+
end
|
13
|
+
|
14
|
+
def self.banner
|
15
|
+
"shibainus/#{VERSION} on Ruby #{RUBY_VERSION} (#{RUBY_RELEASE_DATE}) [#{RUBY_PLATFORM}] in (#{root})"
|
16
|
+
end
|
17
|
+
|
18
|
+
def self.root
|
19
|
+
File.expand_path( File.dirname(File.dirname(File.dirname(__FILE__))) )
|
20
|
+
end
|
21
|
+
|
22
|
+
end # module Shibainus
|
23
|
+
|
data/lib/shibainus.rb
ADDED
@@ -0,0 +1,96 @@
|
|
1
|
+
## 3rd party
|
2
|
+
require 'pixelart/base'
|
3
|
+
|
4
|
+
|
5
|
+
|
6
|
+
## our own code
|
7
|
+
require 'shibainus/version' # note: let version always go first
|
8
|
+
|
9
|
+
|
10
|
+
## forward define superclass for image
|
11
|
+
module Shibainus
|
12
|
+
class Image < Pixelart::Image; end
|
13
|
+
end
|
14
|
+
|
15
|
+
###
|
16
|
+
## add convenience pre-configurated generatored with build-in spritesheet (see config)
|
17
|
+
|
18
|
+
module Shibainus
|
19
|
+
|
20
|
+
def self.generator
|
21
|
+
@generator ||= Pixelart::Generator.new( "#{root}/config/spritesheet.png",
|
22
|
+
"#{root}/config/spritesheet.csv",
|
23
|
+
width: 24,
|
24
|
+
height: 24 )
|
25
|
+
end
|
26
|
+
|
27
|
+
|
28
|
+
|
29
|
+
class Image
|
30
|
+
## before callback/patch for hats
|
31
|
+
BEFORE_PATCH = ->(img, meta) {
|
32
|
+
## hack for doge hats - cut off / clean top (ears)
|
33
|
+
if ['beanie',
|
34
|
+
'cap',
|
35
|
+
'capforward',
|
36
|
+
'cowboyhat',
|
37
|
+
'fedora',
|
38
|
+
'bandana',
|
39
|
+
'tophat',
|
40
|
+
'knittedcap'].include?( meta.name )
|
41
|
+
puts " apply doge headwear (for hats & more) hack before '#{meta.name}' - wipe-out pixel lines 3,4,5 (top e.g. doge ears)..."
|
42
|
+
|
43
|
+
## "wipe-out" pixel lines 3,4,5 (top)
|
44
|
+
[3,4,5].each do |y|
|
45
|
+
img.width.times do |x|
|
46
|
+
img[ x, y ] = 0 # transparent color
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
}
|
51
|
+
|
52
|
+
|
53
|
+
def self.generate( *values, background: nil )
|
54
|
+
|
55
|
+
img = Shibainus.generator.generate( *values,
|
56
|
+
background: background,
|
57
|
+
before: BEFORE_PATCH )
|
58
|
+
## note: unwrap inner image before passing on to c'tor (requires ChunkyPNG image for now)
|
59
|
+
new( 24, 24, img.image )
|
60
|
+
end # method Image.generate
|
61
|
+
end # class Image
|
62
|
+
|
63
|
+
|
64
|
+
class Spritesheet
|
65
|
+
## note: for now class used for "namespace" only
|
66
|
+
def self.find_by( name: ) ## return archetype/attribute image by name
|
67
|
+
# note: pass along name as q (query string)
|
68
|
+
Shibainus.generator.find( name )
|
69
|
+
end
|
70
|
+
end # class Spritesheet
|
71
|
+
## add convenience (alternate spelling) alias - why? why not?
|
72
|
+
SpriteSheet = Spritesheet
|
73
|
+
Sheet = Spritesheet
|
74
|
+
Sprite = Spritesheet
|
75
|
+
end # module Coolcats
|
76
|
+
|
77
|
+
|
78
|
+
### add some convenience shortcuts
|
79
|
+
ShibaInus = Shibainus
|
80
|
+
## add singular too -why? why not?
|
81
|
+
ShibaInu = Shibainus
|
82
|
+
Shibainu = Shibainus
|
83
|
+
Shiba = Shibainus
|
84
|
+
Shib = Shibainus
|
85
|
+
|
86
|
+
## add doge alias/shortcut too - why? why not?
|
87
|
+
Doge = Shibainus
|
88
|
+
|
89
|
+
|
90
|
+
###
|
91
|
+
# note: for convenience auto include Pixelart namespace!!! - why? why not?
|
92
|
+
include Pixelart
|
93
|
+
|
94
|
+
|
95
|
+
|
96
|
+
puts Shibainus.banner # say hello
|
metadata
ADDED
@@ -0,0 +1,107 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: shibainus
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Gerald Bauer
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2022-05-28 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: pixelart
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 1.3.2
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 1.3.2
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rdoc
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '4.0'
|
34
|
+
- - "<"
|
35
|
+
- !ruby/object:Gem::Version
|
36
|
+
version: '7'
|
37
|
+
type: :development
|
38
|
+
prerelease: false
|
39
|
+
version_requirements: !ruby/object:Gem::Requirement
|
40
|
+
requirements:
|
41
|
+
- - ">="
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '4.0'
|
44
|
+
- - "<"
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: '7'
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: hoe
|
49
|
+
requirement: !ruby/object:Gem::Requirement
|
50
|
+
requirements:
|
51
|
+
- - "~>"
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '3.23'
|
54
|
+
type: :development
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
requirements:
|
58
|
+
- - "~>"
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
version: '3.23'
|
61
|
+
description: shibainus - generate your own 24×24 pixel shiba inu (pixel) doge images
|
62
|
+
(off chain) from text attributes (via built-in spritesheet); incl. 2x/4x/8x zoom
|
63
|
+
for bigger sizes and more
|
64
|
+
email: wwwmake@googlegroups.com
|
65
|
+
executables: []
|
66
|
+
extensions: []
|
67
|
+
extra_rdoc_files:
|
68
|
+
- CHANGELOG.md
|
69
|
+
- Manifest.txt
|
70
|
+
- README.md
|
71
|
+
files:
|
72
|
+
- CHANGELOG.md
|
73
|
+
- Manifest.txt
|
74
|
+
- README.md
|
75
|
+
- Rakefile
|
76
|
+
- config/spritesheet.csv
|
77
|
+
- config/spritesheet.png
|
78
|
+
- lib/shibainus.rb
|
79
|
+
- lib/shibainus/version.rb
|
80
|
+
homepage: https://github.com/pixelartexchange/pixelart
|
81
|
+
licenses:
|
82
|
+
- Public Domain
|
83
|
+
metadata: {}
|
84
|
+
post_install_message:
|
85
|
+
rdoc_options:
|
86
|
+
- "--main"
|
87
|
+
- README.md
|
88
|
+
require_paths:
|
89
|
+
- lib
|
90
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
91
|
+
requirements:
|
92
|
+
- - ">="
|
93
|
+
- !ruby/object:Gem::Version
|
94
|
+
version: '2.3'
|
95
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
96
|
+
requirements:
|
97
|
+
- - ">="
|
98
|
+
- !ruby/object:Gem::Version
|
99
|
+
version: '0'
|
100
|
+
requirements: []
|
101
|
+
rubygems_version: 3.3.7
|
102
|
+
signing_key:
|
103
|
+
specification_version: 4
|
104
|
+
summary: shibainus - generate your own 24×24 pixel shiba inu (pixel) doge images (off
|
105
|
+
chain) from text attributes (via built-in spritesheet); incl. 2x/4x/8x zoom for
|
106
|
+
bigger sizes and more
|
107
|
+
test_files: []
|