punkart 0.0.1

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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 2771bd1863acddae95d6cc5ff9b6db4bebe4fb464d0b26830792ab188fc8bf49
4
+ data.tar.gz: 35d51b8ee54604d2b7f724081053137738e118cfa30d223b545ed55fdaa83ec9
5
+ SHA512:
6
+ metadata.gz: f6670e656b26d902a8867ba549ce7df25019f2a4653e7ac24ee47312bd3651b7c4ade311f635c7c9ff519aaa15ac2c44109e6b78236612e7bbdadcc9cc3800fa
7
+ data.tar.gz: 2668bc66bb81b4ef18873cb90853ea277023344ce1c6bdb36c3a3ce1d654e149ffbbe6f88e04ba2039016c467a802b22bb6e594f765bad7920ad949ea3415715
data/CHANGELOG.md ADDED
@@ -0,0 +1,3 @@
1
+ ### 0.0.1 / 2023-04-21
2
+
3
+ * Everything is new. First release
data/Manifest.txt ADDED
@@ -0,0 +1,16 @@
1
+ CHANGELOG.md
2
+ Manifest.txt
3
+ README.md
4
+ Rakefile
5
+ config/bronzecoin.png
6
+ config/dollar.png
7
+ config/goldcoin-back.png
8
+ config/goldcoin-front.png
9
+ config/goldcoin.png
10
+ config/silvercoin.png
11
+ lib/punkart.rb
12
+ lib/punkart/bronzecoin.rb
13
+ lib/punkart/dollar.rb
14
+ lib/punkart/goldcoin.rb
15
+ lib/punkart/silvercoin.rb
16
+ lib/punkart/version.rb
data/README.md ADDED
@@ -0,0 +1,160 @@
1
+ # punk art
2
+
3
+ punkart gem - (automagically) turn your "classic" punk (pixel) heads into dollar greenbacks, gold/silver/bronze coins, and much more
4
+
5
+
6
+
7
+ * home :: [github.com/cryptopunksnotdead/cryptopunks](https://github.com/cryptopunksnotdead/cryptopunks)
8
+ * bugs :: [github.com/cryptopunksnotdead/cryptopunks/issues](https://github.com/cryptopunksnotdead/cryptopunks/issues)
9
+ * gem :: [rubygems.org/gems/punkart](https://rubygems.org/gems/punkart)
10
+ * rdoc :: [rubydoc.info/gems/punkart](http://rubydoc.info/gems/punkart)
11
+
12
+
13
+
14
+
15
+ ## Usage
16
+
17
+
18
+ ### `Image#greenback` (also known as `dollar`, `dollarize`)
19
+
20
+
21
+
22
+ Let's print dollar greenbacks... brrr...
23
+
24
+ ``` ruby
25
+ require 'punkart'
26
+
27
+ specs = [
28
+ ['Robot Male', 'Big Beard'],
29
+ ['Human Male 2', 'Birthday Hat', 'Bubble Gum'],
30
+ ['Human Female 1', 'Dark Hair', 'Flowers', 'Frown', 'Gold Chain'],
31
+ ['Demon Male', 'Hoodie', 'Pipe'],
32
+ ['Ape Male Blue', 'Bandana', 'Earring'],
33
+ ['Human Male 3', 'Cowboy Hat', 'Smile', 'Laser Eyes'],
34
+ ]
35
+
36
+ specs.each_with_index do |attributes, i|
37
+ punk = Punk::Image.generate( *attributes )
38
+
39
+ dollar = punk.greenback ## turn into greenback dollar
40
+ dollar.save( "dollar-#{i+1}.png" )
41
+ dollar.zoom(4).save( "dollar-#{i+1}@4x.png" )
42
+ end
43
+ ```
44
+
45
+
46
+ Voila!
47
+
48
+ ![](i/punk-1.png)
49
+ ![](i/punk-2.png)
50
+ ![](i/punk-3.png)
51
+ ![](i/punk-4.png)
52
+ ![](i/punk-5.png)
53
+ ![](i/punk-6.png)
54
+
55
+ turns into
56
+
57
+ ![](i/dollar-1.png)
58
+ ![](i/dollar-2.png)
59
+ ![](i/dollar-3.png)
60
+ ![](i/dollar-4.png)
61
+ ![](i/dollar-5.png)
62
+ ![](i/dollar-6.png)
63
+
64
+ 4x
65
+
66
+ ![](i/dollar-1@4x.png)
67
+ ![](i/dollar-2@4x.png)
68
+ ![](i/dollar-3@4x.png)
69
+ ![](i/dollar-4@4x.png)
70
+ ![](i/dollar-5@4x.png)
71
+ ![](i/dollar-6@4x.png)
72
+
73
+
74
+
75
+ ### `Image#goldcoin` or `silvercoin` or `bronzecoin`
76
+
77
+ Let's continue and let's mint gold/silver/bronze coins...
78
+
79
+ ``` ruby
80
+ specs.each_with_index do |attributes, i|
81
+ punk = Punk::Image.generate( *attributes )
82
+
83
+ coin = punk.goldcoin ## turn into goldcoin
84
+ coin.save( "goldcoin-#{i+1}.png" )
85
+ coin.zoom(4).save( "goldcoin-#{i+1}@4x.png" )
86
+
87
+ coin = punk.silvercoin ## turn into silvercoin
88
+ coin.save( "silvercoin-#{i+1}.png" )
89
+ coin.zoom(4).save( "silvercoin-#{i+1}@4x.png" )
90
+
91
+ coin = punk.bronzecoin ## turn into bronzecoin
92
+ coin.save( "bronzecoin-#{i+1}.png" )
93
+ coin.zoom(4).save( "bronzecoin-#{i+1}@4x.png" )
94
+ end
95
+ ```
96
+
97
+
98
+ Voila!
99
+
100
+ ![](i/goldcoin-1.png)
101
+ ![](i/goldcoin-2.png)
102
+ ![](i/goldcoin-3.png)
103
+ ![](i/goldcoin-4.png)
104
+ ![](i/goldcoin-5.png)
105
+ ![](i/goldcoin-6.png)
106
+
107
+ ![](i/silvercoin-1.png)
108
+ ![](i/silvercoin-2.png)
109
+ ![](i/silvercoin-3.png)
110
+ ![](i/silvercoin-4.png)
111
+ ![](i/silvercoin-5.png)
112
+ ![](i/silvercoin-6.png)
113
+
114
+ ![](i/bronzecoin-1.png)
115
+ ![](i/bronzecoin-2.png)
116
+ ![](i/bronzecoin-3.png)
117
+ ![](i/bronzecoin-4.png)
118
+ ![](i/bronzecoin-5.png)
119
+ ![](i/bronzecoin-6.png)
120
+
121
+
122
+ 4x
123
+
124
+ ![](i/goldcoin-1@4x.png)
125
+ ![](i/goldcoin-2@4x.png)
126
+ ![](i/goldcoin-3@4x.png)
127
+ ![](i/goldcoin-4@4x.png)
128
+ ![](i/goldcoin-5@4x.png)
129
+ ![](i/goldcoin-6@4x.png)
130
+
131
+ ![](i/silvercoin-1@4x.png)
132
+ ![](i/silvercoin-2@4x.png)
133
+ ![](i/silvercoin-3@4x.png)
134
+ ![](i/silvercoin-4@4x.png)
135
+ ![](i/silvercoin-5@4x.png)
136
+ ![](i/silvercoin-6@4x.png)
137
+
138
+ ![](i/bronzecoin-1@4x.png)
139
+ ![](i/bronzecoin-2@4x.png)
140
+ ![](i/bronzecoin-3@4x.png)
141
+ ![](i/bronzecoin-4@4x.png)
142
+ ![](i/bronzecoin-5@4x.png)
143
+ ![](i/bronzecoin-6@4x.png)
144
+
145
+
146
+
147
+ That's it.
148
+
149
+
150
+ ## License
151
+
152
+ The scripts are dedicated to the public domain.
153
+ Use it as you please with no restrictions whatsoever.
154
+
155
+
156
+ ## Questions? Comments?
157
+
158
+ Post them over at the [Help & Support](https://github.com/geraldb/help) page. Thanks.
159
+
160
+
data/Rakefile ADDED
@@ -0,0 +1,42 @@
1
+ require 'hoe'
2
+ require './lib/punkart/version.rb'
3
+
4
+
5
+ ###
6
+ # hack/ quick fix for broken intuit_values - overwrite with dummy
7
+ class Hoe
8
+ def intuit_values( input ); end
9
+ end
10
+
11
+
12
+ Hoe.spec 'punkart' do
13
+
14
+ self.version = Pixelart::Module::Punkart::VERSION
15
+
16
+
17
+ self.summary = 'punkart gem - (automagically) turn your "classic" punk (pixel) heads into dollar greenbacks, gold/silver/bronze coins, and much more'
18
+ self.description = summary
19
+
20
+ self.urls = { home: 'https://github.com/cryptopunksnotdead/cryptopunks' }
21
+
22
+ self.author = 'Gerald Bauer'
23
+ self.email = 'gerald.bauer@gmail.com'
24
+
25
+ # switch extension to .markdown for gihub formatting
26
+ self.readme_file = 'README.md'
27
+ self.history_file = 'CHANGELOG.md'
28
+
29
+ self.extra_deps = [
30
+ ['pixelart'],
31
+ ['punks'],
32
+ ['punkmaker'],
33
+ ]
34
+
35
+ self.licenses = ['Public Domain']
36
+
37
+ self.spec_extras = {
38
+ required_ruby_version: '>= 2.3'
39
+ }
40
+
41
+ end
42
+
Binary file
data/config/dollar.png ADDED
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -0,0 +1,33 @@
1
+
2
+ module Pixelart
3
+ module Bronzecoin
4
+
5
+ def self.mint( img )
6
+ raise ArgumentError, "sorry only 24x24 supported for now; called on image #{img.width}x#{img.height}" unless img.width == 24 && img.height == 24
7
+
8
+ ## change to coin color palette
9
+ coin = Image.new( 32, 32 )
10
+ coin.compose!( COIN_FRAME )
11
+ coin.compose!( img.change_palette8bit( COIN_PALETTE ), 5, 3 )
12
+ coin
13
+ end
14
+
15
+ ####
16
+ # helpers
17
+ COIN_FRAME = Image.read( "#{Module::Punkart.root}/config/bronzecoin.png" )
18
+
19
+ # note: use dark to light
20
+ COIN_PALETTE = Gradient.new( '#7C433A',
21
+ '#8D5144',
22
+ '#B16C57',
23
+ '#C87E63',
24
+ '#E99775' ).colors( 256 )
25
+
26
+
27
+ def self.frame() COIN_FRAME; end
28
+ def self.width() COIN_FRAME.width; end
29
+ def self.height() COIN_FRAME.height; end
30
+ def self.palette() COIN_PALETTE; end
31
+
32
+ end # module Bronzecoin
33
+ end # module Pixelart
@@ -0,0 +1,54 @@
1
+
2
+ module Pixelart
3
+ module Dollar ## use/rename to Greenback - why? why not?
4
+
5
+ def self.print( img )
6
+ raise ArgumentError, "sorry only 24x24 supported for now; called on image #{img.width}x#{img.height}" unless img.width == 24 && img.height == 24
7
+
8
+ ## change to greenback color palette
9
+ dollar = Image.new( DOLLAR_FRAME.width, DOLLAR_FRAME.height )
10
+ dollar.compose!( DOLLAR_FRAME )
11
+ dollar.compose!( img.change_palette8bit( DOLLAR_PALETTE ), 16, 0 )
12
+ dollar
13
+ end
14
+
15
+
16
+ ####
17
+ # helpers
18
+ DOLLAR_FRAME = Image.read( "#{Module::Punkart.root}/config/dollar.png" )
19
+
20
+ def self.frame() DOLLAR_FRAME; end
21
+ def self.width() DOLLAR_FRAME.width; end
22
+ def self.height() DOLLAR_FRAME.height; end
23
+ def self.palette() DOLLAR_PALETTE; end
24
+
25
+
26
+ def self._gen_palette( color )
27
+ color = Color.parse( color ) if color.is_a?( String )
28
+
29
+ h,s,l = Color.to_hsl( color )
30
+
31
+ pp h
32
+ pp s
33
+ pp l
34
+
35
+ darker = 0.25 ## cut-off colors starting from black
36
+ lighter = 0.05 ## cut-off colors starting from white
37
+
38
+ ldiff = (1.0 - darker - lighter)
39
+
40
+ puts " ldiff: #{ldiff}"
41
+
42
+ colors = []
43
+ 256.times do |i|
44
+ lnew = darker+(ldiff*i / 256.0)
45
+ puts " #{i} - #{lnew}"
46
+ colors << Color.from_hsl( h, s, lnew)
47
+ end
48
+ colors
49
+ end
50
+
51
+ DOLLAR_PALETTE = _gen_palette( '#536140' )
52
+ #=> #536140 / rgb( 83 97 64) - hsl( 85° 20% 32%)
53
+ end # module Dollar
54
+ end # module Pixelart
@@ -0,0 +1,36 @@
1
+
2
+ module Pixelart
3
+ module Goldcoin
4
+
5
+ def self.mint( img )
6
+ raise ArgumentError, "sorry only 24x24 supported for now; called on image #{img.width}x#{img.height}" unless img.width == 24 && img.height == 24
7
+
8
+ ## change to coin color palette
9
+ coin = Image.new( 32, 32 )
10
+ coin.compose!( COIN_FRAME_BACK )
11
+ coin.compose!( img.change_palette8bit( COIN_PALETTE ), 5, 3 )
12
+ coin.compose!( COIN_FRAME_FRONT )
13
+ coin
14
+ end
15
+
16
+ ####
17
+ # helpers
18
+ COIN_FRAME = Image.read( "#{Module::Punkart.root}/config/goldcoin.png" )
19
+ COIN_FRAME_FRONT = Image.read( "#{Module::Punkart.root}/config/goldcoin-front.png" )
20
+ COIN_FRAME_BACK = Image.read( "#{Module::Punkart.root}/config/goldcoin-back.png" )
21
+
22
+ # note: use dark to light
23
+ COIN_PALETTE = Gradient.new( '#CA7128',
24
+ '#D9862C',
25
+ '#F2AF39',
26
+ '#F6C451',
27
+ '#FBE272' ).colors( 256 )
28
+
29
+
30
+ def self.frame() COIN_FRAME; end
31
+ def self.width() COIN_FRAME.width; end
32
+ def self.height() COIN_FRAME.height; end
33
+ def self.palette() COIN_PALETTE; end
34
+
35
+ end # module Goldcoin
36
+ end # module Pixelart
@@ -0,0 +1,33 @@
1
+
2
+ module Pixelart
3
+ module Silvercoin
4
+
5
+ def self.mint( img )
6
+ raise ArgumentError, "sorry only 24x24 supported for now; called on image #{img.width}x#{img.height}" unless img.width == 24 && img.height == 24
7
+
8
+ ## change to coin color palette
9
+ coin = Image.new( 32, 32 )
10
+ coin.compose!( COIN_FRAME )
11
+ coin.compose!( img.change_palette8bit( COIN_PALETTE ), 5, 3 )
12
+ coin
13
+ end
14
+
15
+ ####
16
+ # helpers
17
+ COIN_FRAME = Image.read( "#{Module::Punkart.root}/config/silvercoin.png" )
18
+
19
+ # note: use dark to light
20
+ COIN_PALETTE = Gradient.new( '#4F5865',
21
+ '#636C78',
22
+ '#8B949E',
23
+ '#A5AEB6',
24
+ '#CAD3D9' ).colors( 256 )
25
+
26
+
27
+ def self.frame() COIN_FRAME; end
28
+ def self.width() COIN_FRAME.width; end
29
+ def self.height() COIN_FRAME.height; end
30
+ def self.palette() COIN_PALETTE; end
31
+
32
+ end # module Silvercoin
33
+ end # module Pixelart
@@ -0,0 +1,24 @@
1
+ module Pixelart
2
+ module Module
3
+ module Punkart
4
+ MAJOR = 0
5
+ MINOR = 0
6
+ PATCH = 1
7
+ VERSION = [MAJOR,MINOR,PATCH].join('.')
8
+
9
+ def self.version
10
+ VERSION
11
+ end
12
+
13
+ def self.banner
14
+ "punkart/#{VERSION} on Ruby #{RUBY_VERSION} (#{RUBY_RELEASE_DATE}) [#{RUBY_PLATFORM}] in (#{root})"
15
+ end
16
+
17
+ def self.root
18
+ File.expand_path( File.dirname(File.dirname(File.dirname(__FILE__))) )
19
+ end
20
+
21
+ end # module Punkart
22
+ end # module Module
23
+ end # module Pixelart
24
+
data/lib/punkart.rb ADDED
@@ -0,0 +1,35 @@
1
+ require 'pixelart'
2
+
3
+ ## auto-requre punks and punkmaker - why? why not?
4
+ require 'punks'
5
+ require 'punkmaker'
6
+
7
+
8
+
9
+ ## our own code
10
+ require_relative 'punkart/version' # let versoin go first
11
+ require_relative 'punkart/dollar'
12
+ require_relative 'punkart/goldcoin'
13
+ require_relative 'punkart/silvercoin'
14
+ require_relative 'punkart/bronzecoin'
15
+
16
+
17
+ module Pixelart
18
+ class Image
19
+
20
+
21
+ def greenback() Dollar.print( self ); end
22
+ alias_method :dollar, :greenback
23
+ alias_method :dollarize, :greenback
24
+
25
+ def goldcoin() Goldcoin.mint( self ); end
26
+ def silvercoin() Silvercoin.mint( self ); end
27
+ def bronzecoin() Bronzecoin.mint( self ); end
28
+
29
+
30
+ end # class Image
31
+ end # module Pixelart
32
+
33
+
34
+
35
+
metadata ADDED
@@ -0,0 +1,141 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: punkart
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Gerald Bauer
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2023-04-21 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: '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: punks
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
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: punkmaker
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rdoc
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '4.0'
62
+ - - "<"
63
+ - !ruby/object:Gem::Version
64
+ version: '7'
65
+ type: :development
66
+ prerelease: false
67
+ version_requirements: !ruby/object:Gem::Requirement
68
+ requirements:
69
+ - - ">="
70
+ - !ruby/object:Gem::Version
71
+ version: '4.0'
72
+ - - "<"
73
+ - !ruby/object:Gem::Version
74
+ version: '7'
75
+ - !ruby/object:Gem::Dependency
76
+ name: hoe
77
+ requirement: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - "~>"
80
+ - !ruby/object:Gem::Version
81
+ version: '3.23'
82
+ type: :development
83
+ prerelease: false
84
+ version_requirements: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - "~>"
87
+ - !ruby/object:Gem::Version
88
+ version: '3.23'
89
+ description: punkart gem - (automagically) turn your "classic" punk (pixel) heads
90
+ into dollar greenbacks, gold/silver/bronze coins, and much more
91
+ email: gerald.bauer@gmail.com
92
+ executables: []
93
+ extensions: []
94
+ extra_rdoc_files:
95
+ - CHANGELOG.md
96
+ - Manifest.txt
97
+ - README.md
98
+ files:
99
+ - CHANGELOG.md
100
+ - Manifest.txt
101
+ - README.md
102
+ - Rakefile
103
+ - config/bronzecoin.png
104
+ - config/dollar.png
105
+ - config/goldcoin-back.png
106
+ - config/goldcoin-front.png
107
+ - config/goldcoin.png
108
+ - config/silvercoin.png
109
+ - lib/punkart.rb
110
+ - lib/punkart/bronzecoin.rb
111
+ - lib/punkart/dollar.rb
112
+ - lib/punkart/goldcoin.rb
113
+ - lib/punkart/silvercoin.rb
114
+ - lib/punkart/version.rb
115
+ homepage: https://github.com/cryptopunksnotdead/cryptopunks
116
+ licenses:
117
+ - Public Domain
118
+ metadata: {}
119
+ post_install_message:
120
+ rdoc_options:
121
+ - "--main"
122
+ - README.md
123
+ require_paths:
124
+ - lib
125
+ required_ruby_version: !ruby/object:Gem::Requirement
126
+ requirements:
127
+ - - ">="
128
+ - !ruby/object:Gem::Version
129
+ version: '2.3'
130
+ required_rubygems_version: !ruby/object:Gem::Requirement
131
+ requirements:
132
+ - - ">="
133
+ - !ruby/object:Gem::Version
134
+ version: '0'
135
+ requirements: []
136
+ rubygems_version: 3.3.7
137
+ signing_key:
138
+ specification_version: 4
139
+ summary: punkart gem - (automagically) turn your "classic" punk (pixel) heads into
140
+ dollar greenbacks, gold/silver/bronze coins, and much more
141
+ test_files: []