pixelart 1.3.5 → 1.3.7

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 43bc0ad17527099593a49e143036c875bf93fc61873d551252a19376490734fd
4
- data.tar.gz: c57fdb4d5241915767f4480a698f3f362d25c53f99805050b8c8dd4c2ca9ec27
3
+ metadata.gz: 931c4aa26d5a0594b4aec85f532d16e93d3dd505f4d2f9729b24e3fd45c662c4
4
+ data.tar.gz: 5dc8936fc9a0f76b05cf4209ad69ebeba87f25bd3c0290cad59e961760aa5782
5
5
  SHA512:
6
- metadata.gz: 742db57f909288c2a19105244951f676c99723544be749e60544d3576f326f323ec00bcdf0ea9fbeef0e6a6a0d55771f5ad06a7e5fe1a32814b6f509bc472be4
7
- data.tar.gz: 2b7d05f9e4ab9a4f4348b3fb7b7f1f5b36ee884b4db3bae901479c84c4dac0207f67f56ba140319a45bd1704c9af14075ef7dfc3ef20897476dfc5bf242a509c
6
+ metadata.gz: 3189094ecb75f30d1ccd52bafc83b6ece3319b0b5c4f769ab02110212b5674adc59a816dc2abfa8be3d9a6a344bd253471677d5802391325b681987eb9d5ece0
7
+ data.tar.gz: a1e6e2ea6c25ac1ed7f2542ff8039a8ac1b5232001539611a151302959563e623d879e9c6590aa4cc1468d7716eb7ffaa8faeeed9360589570664a94f512aa48
data/Manifest.txt CHANGED
@@ -10,8 +10,10 @@ lib/pixelart/composite.rb
10
10
  lib/pixelart/convert.rb
11
11
  lib/pixelart/generator.rb
12
12
  lib/pixelart/image.rb
13
+ lib/pixelart/invert.rb
13
14
  lib/pixelart/led.rb
14
15
  lib/pixelart/misc.rb
16
+ lib/pixelart/orc721/generator.rb
15
17
  lib/pixelart/pixelator.rb
16
18
  lib/pixelart/sample.rb
17
19
  lib/pixelart/silhouette.rb
data/README.md CHANGED
@@ -1,10 +1,10 @@
1
1
  # Pixel Art
2
2
 
3
- pixelart - mint your own pixel art images off chain using any design (in ascii text) in any colors; incl. 2x/4x/8x zoom for bigger sizes
3
+ pixelart - yes, you can! generate your own pixel art images (off-blockchain) using any design (in ascii text) in any colors; incl. 2x/4x/8x zoom for bigger sizes
4
4
 
5
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)
6
+ * home :: [github.com/learnpixelart/pixelart](https://github.com/learnpixelart/pixelart)
7
+ * bugs :: [github.com/learnpixelart/pixelart/issues](https://github.com/learnpixelart/pixelart/issues)
8
8
  * gem :: [rubygems.org/gems/pixelart](https://rubygems.org/gems/pixelart)
9
9
  * rdoc :: [rubydoc.info/gems/pixelart](http://rubydoc.info/gems/pixelart)
10
10
 
@@ -71,8 +71,8 @@ img3x.save( './i/mooncat_white-3x.png' )
71
71
 
72
72
  Voila!
73
73
 
74
- ![](https://github.com/pixelartexchange/pixelart/raw/master/pixelart/i/mooncat_white.png)
75
- ![](https://github.com/pixelartexchange/pixelart/raw/master/pixelart/i/mooncat_white-3x.png)
74
+ ![](https://github.com/learnpixelart/pixelart/raw/master/pixelart/i/mooncat_white.png)
75
+ ![](https://github.com/learnpixelart/pixelart/raw/master/pixelart/i/mooncat_white-3x.png)
76
76
 
77
77
 
78
78
 
@@ -100,8 +100,8 @@ img3x.save( './i/mooncat_black-3x.png' )
100
100
 
101
101
  Voila! Black is the new White!
102
102
 
103
- ![](https://github.com/pixelartexchange/pixelart/raw/master/pixelart/i/mooncat_black.png)
104
- ![](https://github.com/pixelartexchange/pixelart/raw/master/pixelart/i/mooncat_black-3x.png)
103
+ ![](https://github.com/learnpixelart/pixelart/raw/master/pixelart/i/mooncat_black.png)
104
+ ![](https://github.com/learnpixelart/pixelart/raw/master/pixelart/i/mooncat_black-3x.png)
105
105
 
106
106
 
107
107
 
@@ -227,8 +227,8 @@ img5x.save( './i/vader5x.png' )
227
227
 
228
228
  Voila!
229
229
 
230
- ![](https://github.com/pixelartexchange/pixelart/raw/master/pixelart/i/vader.png)
231
- ![](https://github.com/pixelartexchange/pixelart/raw/master/pixelart/i/vader5x.png)
230
+ ![](https://github.com/learnpixelart/pixelart/raw/master/pixelart/i/vader.png)
231
+ ![](https://github.com/learnpixelart/pixelart/raw/master/pixelart/i/vader5x.png)
232
232
 
233
233
 
234
234
 
@@ -291,6 +291,9 @@ Use it as you please with no restrictions whatsoever.
291
291
 
292
292
 
293
293
 
294
+
294
295
  ## Questions? Comments?
295
296
 
296
- Post them on the [D.I.Y. Punk (Pixel) Art reddit](https://old.reddit.com/r/DIYPunkArt). Thanks.
297
+ Post them over at the [Help & Support](https://github.com/geraldb/help) page. Thanks.
298
+
299
+
data/Rakefile CHANGED
@@ -5,13 +5,13 @@ Hoe.spec 'pixelart' do
5
5
 
6
6
  self.version = Pixelart::VERSION
7
7
 
8
- self.summary = "pixelart - mint your own pixel art images off chain using any design (in ascii text) in any colors; incl. 2x/4x/8x zoom for bigger sizes"
8
+ self.summary = "pixelart - yes, you can! generate your own pixel art images (off-blockchain) using any design (in ascii text) in any colors; incl. 2x/4x/8x zoom for bigger sizes"
9
9
  self.description = summary
10
10
 
11
- self.urls = { home: 'https://github.com/pixelartexchange/pixelart' }
11
+ self.urls = { home: 'https://github.com/learnpixelart/pixelart' }
12
12
 
13
13
  self.author = 'Gerald Bauer'
14
- self.email = 'wwwmake@googlegroups.com'
14
+ self.email = 'gerald.bauer@gmail.com'
15
15
 
16
16
  # switch extension to .markdown for gihub formatting
17
17
  self.readme_file = 'README.md'
data/lib/pixelart/base.rb CHANGED
@@ -42,6 +42,7 @@ require 'pixelart/led'
42
42
  require 'pixelart/sketch'
43
43
  require 'pixelart/transparent'
44
44
  require 'pixelart/silhouette'
45
+ require 'pixelart/invert'
45
46
  require 'pixelart/ukraine'
46
47
 
47
48
 
@@ -69,4 +70,9 @@ require 'pixelart/convert'
69
70
 
70
71
 
71
72
 
73
+ ####
74
+ # add orc-721 - why? why not?
75
+ require 'pixelart/orc721/generator'
76
+
77
+
72
78
  puts Pixelart.banner # say hello
@@ -10,7 +10,7 @@ class ImageComposite < Image # check: (re)name to Collage, Sheet, Sprites, or s
10
10
  def self.read( path, width: TILE_WIDTH, height: TILE_WIDTH ) ## convenience helper
11
11
  img = ChunkyPNG::Image.from_file( path )
12
12
  new( img, width: width,
13
- height: width )
13
+ height: height )
14
14
  end
15
15
 
16
16
 
@@ -36,15 +36,18 @@ def self.convert( dir, from: 'jpg',
36
36
  system( cmd )
37
37
 
38
38
  if from == 'gif'
39
- ## assume multi-images for gif
39
+ ## check for multi-images for gif
40
40
  ## save image-0.png to image.png
41
41
  path0 = "#{outdir}/#{basename}-0.#{to}"
42
42
  path = "#{outdir}/#{basename}.#{to}"
43
43
 
44
- puts " saving #{path0} to #{path}..."
44
+ ## note: image-0.png only exists (gets generated) for multi-images
45
+ if File.exist?( path0 )
46
+ puts " saving #{path0} to #{path}..."
45
47
 
46
- blob = File.open( path0, 'rb' ) { |f| f.read }
47
- File.open( path, 'wb' ) { |f| f.write( blob ) }
48
+ blob = File.open( path0, 'rb' ) { |f| f.read }
49
+ File.open( path, 'wb' ) { |f| f.write( blob ) }
50
+ end
48
51
  end
49
52
  end
50
53
  end
@@ -23,28 +23,37 @@ end
23
23
 
24
24
 
25
25
 
26
-
27
26
  def self.read( path ) ## convenience helper
28
27
  img_inner = ChunkyPNG::Image.from_file( path )
29
- img = new( img_inner.width, img_inner.height, img_inner )
30
- img
28
+ new( img_inner.width, img_inner.height, img_inner )
31
29
  end
32
30
 
33
31
  def self.parse_base64( str )
34
32
  blob = Base64.decode64( str )
35
33
  img_inner = ChunkyPNG::Image.from_blob( blob )
36
- img = new( img_inner.width, img_inner.height, img_inner )
37
- img
34
+ new( img_inner.width, img_inner.height, img_inner )
35
+ end
36
+
37
+ def self.blob( blob )
38
+ img_inner = ChunkyPNG::Image.from_blob( blob )
39
+ new( img_inner.width, img_inner.height, img_inner )
40
+ end
41
+
42
+ class << self
43
+ alias_method :from_blob, :blob
38
44
  end
39
45
 
40
46
 
41
47
 
42
48
 
49
+
43
50
  CHARS = '.@xo^~%*+=:' ## todo/check: rename to default chars or such? why? why not?
44
51
 
45
52
  ## todo/check: support default chars encoding auto-of-the-box always
46
53
  ## or require user-defined chars to be passed in - why? why not?
47
- def self.parse( pixels, colors:, chars: CHARS )
54
+ def self.parse( pixels, colors:,
55
+ background: Color::TRANSPARENT,
56
+ chars: CHARS )
48
57
  has_keys = colors.is_a?(Hash) ## check if passed-in user-defined keys (via hash table)?
49
58
 
50
59
  colors = parse_colors( colors )
@@ -53,6 +62,8 @@ def self.parse( pixels, colors:, chars: CHARS )
53
62
  width = pixels.reduce(1) {|width,row| row.size > width ? row.size : width }
54
63
  height = pixels.size
55
64
 
65
+ background = Color.parse( background ) unless background.is_a?( Integer )
66
+
56
67
  img = new( width, height )
57
68
 
58
69
  pixels.each_with_index do |row,y|
@@ -70,7 +81,13 @@ def self.parse( pixels, colors:, chars: CHARS )
70
81
  end
71
82
  end
72
83
 
73
- img[x,y] = pixel
84
+
85
+ img[x,y] = if background && background != Color::TRANSPARENT &&
86
+ pixel == Color::TRANSPARENT
87
+ background ## note: auto-fill transparent with background color
88
+ else
89
+ pixel
90
+ end
74
91
  end # each row
75
92
  end # each data
76
93
 
@@ -133,7 +150,10 @@ def left( left )
133
150
  end
134
151
 
135
152
 
136
-
153
+ def to_blob
154
+ @img.to_blob
155
+ end
156
+ alias_method :blob, :to_blob
137
157
 
138
158
 
139
159
  #######################
@@ -149,6 +169,11 @@ alias_method :greyscale, :grayscale
149
169
  ######################
150
170
  # flip horizontally on x-axis (top-to-bottom/bottom-to-top)
151
171
  # e.g. pixels on the top will now be pixels on the bottom
172
+ #
173
+ # todo/check: commom use is reverse?
174
+ # e.g. flip_vertically is top-to-bottom!!!
175
+ # use flip_y_axis, flip_x_axis or something else - why? why not?
176
+ # check photoshop and gimp terminology and update later if different - why? why not?
152
177
  def flip_horizontally
153
178
  img = @img.flip_horizontally
154
179
  Image.new( img.width, img.height, img )
@@ -158,6 +183,7 @@ end
158
183
  alias_method :flop, :flip_horizontally
159
184
 
160
185
 
186
+
161
187
  ###
162
188
  # flip vertially on y-axis (right-to-left/left-to-right)
163
189
  # e.g. pixels on the left will now be pixels on the right
@@ -295,17 +321,28 @@ def image() @img; end
295
321
  ######
296
322
  # helpers
297
323
  def self.parse_pixels( pixels )
298
- data = []
299
- pixels.each_line do |line|
300
- line = line.strip
301
- next if line.start_with?( '#' ) || line.empty? ## note: allow comments and empty lines
302
-
303
- ## note: allow multiple spaces or tabs to separate pixel codes
304
- ## e.g. o o o o o o o o o o o o dg lg w w lg w lg lg dg dg w w lg dg o o o o o o o o o o o
305
- ## or
306
- data << line.split( /[ \t]+/)
307
- end
308
- data
324
+ if pixels.is_a?( Array ) ## assume array of string (lines)
325
+ data = []
326
+ pixels.each do |line|
327
+ ## convert (string) line into indidual chars
328
+ data << line.each_char.reduce( [] ) { |mem, c| mem << c; mem }
329
+ end
330
+ data
331
+ else ## assume it's a (multi-line) string (with newlines)
332
+ ## assert and throw ArgumentError if not? - why? why not?
333
+ data = []
334
+ pixels.each_line do |line|
335
+ line = line.strip
336
+ next if line.start_with?( '#' ) || line.empty? ## note: allow comments and empty lines
337
+
338
+ ## note: allow multiple spaces or tabs
339
+ ## to separate pixel codes
340
+ ## e.g. o o o o o o o o o o o o dg lg w w lg w lg lg dg dg w w lg dg o o o o o o o o o o o
341
+ ## or
342
+ data << line.split( /[ \t]+/)
343
+ end
344
+ data
345
+ end
309
346
  end
310
347
 
311
348
 
@@ -0,0 +1,40 @@
1
+ module Pixelart
2
+
3
+
4
+ ## todo/check:
5
+ ## use a different name for invert
6
+ ## - why not - negate ???
7
+
8
+
9
+ class Image
10
+ ## note: invert will only invert r/g/b - and NOT the a(lpha) channel
11
+ ## the a(lpha) channel get passed on as is (1:1)
12
+ def invert
13
+ img = Image.new( @img.width, @img.height )
14
+
15
+ @img.width.times do |x|
16
+ @img.height.times do |y|
17
+ pixel = @img[x,y]
18
+
19
+ ## note: xor (^) with 0 returns the original value unmodified.
20
+ ## xor (^) with 0xff flips the bits.
21
+ ## that is we are flipping/inverting r, g and b.
22
+ ## and keep the a(lpha) channel as is.
23
+
24
+ ## hack - why? why not?
25
+ ## if transparent e.g. 0x0 than keep as is
26
+ ## do not use 0xffffff00 - makes a difference?
27
+
28
+ img[x,y] = if pixel == Color::TRANSPARENT # transparent (0)
29
+ Color::TRANSPARENT
30
+ else
31
+ pixel ^ 0xffffff00
32
+ end
33
+ end
34
+ end
35
+ img
36
+ end
37
+
38
+ end # class Image
39
+
40
+ end # module Pixelart
@@ -0,0 +1,51 @@
1
+
2
+
3
+ module Orc721
4
+ class Generator
5
+ ###################
6
+ ## convenience setup helper(s)
7
+ def self.read( path, width: 24, height: 24 )
8
+ new( Pixelart::ImageComposite.read( path,
9
+ width: width,
10
+ height: height ))
11
+ end
12
+
13
+
14
+ def initialize( spritesheet )
15
+ ### todo: check for composite image type? - why? why not?
16
+ @spritesheet = spritesheet
17
+ end
18
+
19
+ def _parse( spec )
20
+ ## for delimiter allow for now: - why? why not?
21
+ ## (multiple) space ( )
22
+ ## command or semicolon
23
+ spec.strip.split( %r{[ ,;/_-]+} ).map {|v| v.to_i(10) }
24
+ end
25
+
26
+ def parse( spec )
27
+ ## convenience helper
28
+ ## parses g spec in various (delimited) formats
29
+ g = _parse( spec )
30
+ generate( *g )
31
+ end
32
+
33
+ def generate( *attributes )
34
+ img = Pixelart::Image.new( width, height )
35
+ attributes.each do |num|
36
+ img.compose!( @spritesheet[ num ] )
37
+ end
38
+ img
39
+ end
40
+ alias_method :g, :generate
41
+
42
+ def width() @spritesheet.tile_width; end
43
+ def height() @spritesheet.tile_height; end
44
+ def count() @spritesheet.count; end
45
+ end # class Generator
46
+ end # module Orc721
47
+
48
+
49
+ ######
50
+ ## add convenience aliases - why? why not?
51
+ ORC721 = Orc721
@@ -3,14 +3,24 @@ module Pixelart
3
3
 
4
4
 
5
5
  class Image
6
- def sketch( sketch=4, line: 1 )
6
+ def sketch( sketch=4, line: 1,
7
+ line_color: Color::BLACK,
8
+ colorize: false )
9
+ ## todo/check: rename color option to fill or such - why? why not?
10
+
7
11
  # todo: line - find a better name eg. line_strenght/width or such?
8
12
  width = @img.width*sketch + (@img.width+1)*line
9
13
  height = @img.height*sketch + (@img.height+1)*line
10
14
 
11
15
  puts " #{width}x#{height}"
12
16
 
13
- img = Image.new( width, height, Color::WHITE )
17
+
18
+ background_color = colorize ? Color::TRANSPARENT
19
+ : Color::WHITE
20
+
21
+
22
+ img = Image.new( width, height, background_color )
23
+
14
24
 
15
25
  @img.width.times do |x|
16
26
  @img.height.times do |y|
@@ -19,12 +29,13 @@ class Image
19
29
  ## get surrounding pixels - if "out-of-bound" use transparent (0)
20
30
  left = x == 0 ? Color::TRANSPARENT : @img[x-1,y]
21
31
  top = y == 0 ? Color::TRANSPARENT : @img[x ,y-1]
32
+ diag = (x==0 || y== 0) ? Color::TRANSPARENT : @img[x-1,y-1]
22
33
 
23
34
  if pixel != left ## draw vertical line
24
- (sketch+line*2).times do |n|
25
- line.times do |m|
26
- img[ x*sketch + line*x + m,
27
- n + y*sketch + line*y] = Color::BLACK
35
+ line.times do |n|
36
+ (sketch+line*2).times do |m|
37
+ img[ x*sketch + line*x + n,
38
+ m + y*sketch + line*y] = line_color
28
39
  end
29
40
  end
30
41
  end
@@ -33,7 +44,7 @@ class Image
33
44
  (sketch+line*2).times do |n|
34
45
  line.times do |m|
35
46
  img[n + x*sketch + line*x,
36
- y*sketch + line*y + m] = Color::BLACK
47
+ y*sketch + line*y + m] = line_color
37
48
  end
38
49
  end
39
50
  end
@@ -42,10 +53,10 @@ class Image
42
53
  ## check special edge case for x and y to add "finish-up" right and bottom line
43
54
  if x == @img.width-1 && pixel != Color::TRANSPARENT
44
55
  ## draw vertical line
45
- (sketch+line*2).times do |n|
46
- line.times do |m|
47
- img[ (x+1)*sketch + line*(x+1) + m,
48
- n + y*sketch + line*y] = Color::BLACK
56
+ line.times do |n|
57
+ (sketch+line*2).times do |m|
58
+ img[ (x+1)*sketch + line*(x+1) + n,
59
+ m + y*sketch + line*y] = line_color
49
60
  end
50
61
  end
51
62
  end
@@ -55,12 +66,56 @@ class Image
55
66
  (sketch+line*2).times do |n|
56
67
  line.times do |m|
57
68
  img[n + x*sketch + line*x,
58
- (y+1)*sketch + line*(y+1) + m] = Color::BLACK
69
+ (y+1)*sketch + line*(y+1) + m] = line_color
59
70
  end
60
71
  end
61
72
  end
62
- end
63
- end
73
+
74
+ ###############
75
+ ## fill with pixel color if color true (default is false)
76
+ if colorize && pixel != Color::TRANSPARENT
77
+ sketch.times do |n|
78
+ sketch.times do |m|
79
+ img[x*sketch + line*(x+1) + n,
80
+ y*sketch + line*(y+1) + m] = pixel
81
+ end
82
+ end
83
+
84
+ if pixel == left ## draw vertical line
85
+ line.times do |n|
86
+ sketch.times do |m|
87
+ img[x*sketch + line*x + n,
88
+ y*sketch + line*(y+1) + m] = pixel
89
+ # (y%2==0 ? 0x0000ffff : 0x000088ff ) # (for debugging)
90
+ end
91
+ end
92
+ end
93
+
94
+ if pixel == top ## draw horizontal line
95
+ sketch.times do |n|
96
+ line.times do |m|
97
+ img[x*sketch + line*(x+1) + n,
98
+ y*sketch + line*y + m] = pixel
99
+ # (x%2==0 ? 0xff0000ff : 0x880000ff ) # (for debugging)
100
+ end
101
+ end
102
+ end
103
+
104
+ ## check all four same color (00,01)
105
+ ## (10, x) - bingo!
106
+ if pixel == left && pixel == top && pixel == diag
107
+ line.times do |n|
108
+ line.times do |m|
109
+ img[x*sketch + line*x + n,
110
+ y*sketch + line*y + m] = pixel
111
+ # 0xffff00ff # (for debugging)
112
+ end
113
+ end
114
+ end
115
+ end # colorize?
116
+
117
+ end # height.times
118
+ end # width.times
64
119
 
65
120
  img
66
121
  end
@@ -3,7 +3,7 @@ module Pixelart
3
3
 
4
4
  MAJOR = 1
5
5
  MINOR = 3
6
- PATCH = 5
6
+ PATCH = 7
7
7
  VERSION = [MAJOR,MINOR,PATCH].join('.')
8
8
 
9
9
  def self.version
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pixelart
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.5
4
+ version: 1.3.7
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-08-03 00:00:00.000000000 Z
11
+ date: 2023-06-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cocos
@@ -100,9 +100,9 @@ dependencies:
100
100
  - - "~>"
101
101
  - !ruby/object:Gem::Version
102
102
  version: '3.23'
103
- description: pixelart - mint your own pixel art images off chain using any design
104
- (in ascii text) in any colors; incl. 2x/4x/8x zoom for bigger sizes
105
- email: wwwmake@googlegroups.com
103
+ description: pixelart - yes, you can! generate your own pixel art images (off-blockchain)
104
+ using any design (in ascii text) in any colors; incl. 2x/4x/8x zoom for bigger sizes
105
+ email: gerald.bauer@gmail.com
106
106
  executables: []
107
107
  extensions: []
108
108
  extra_rdoc_files:
@@ -122,8 +122,10 @@ files:
122
122
  - lib/pixelart/convert.rb
123
123
  - lib/pixelart/generator.rb
124
124
  - lib/pixelart/image.rb
125
+ - lib/pixelart/invert.rb
125
126
  - lib/pixelart/led.rb
126
127
  - lib/pixelart/misc.rb
128
+ - lib/pixelart/orc721/generator.rb
127
129
  - lib/pixelart/pixelator.rb
128
130
  - lib/pixelart/sample.rb
129
131
  - lib/pixelart/silhouette.rb
@@ -134,7 +136,7 @@ files:
134
136
  - lib/pixelart/ukraine.rb
135
137
  - lib/pixelart/vector.rb
136
138
  - lib/pixelart/version.rb
137
- homepage: https://github.com/pixelartexchange/pixelart
139
+ homepage: https://github.com/learnpixelart/pixelart
138
140
  licenses:
139
141
  - Public Domain
140
142
  metadata: {}
@@ -158,6 +160,6 @@ requirements: []
158
160
  rubygems_version: 3.3.7
159
161
  signing_key:
160
162
  specification_version: 4
161
- summary: pixelart - mint your own pixel art images off chain using any design (in
162
- ascii text) in any colors; incl. 2x/4x/8x zoom for bigger sizes
163
+ summary: pixelart - yes, you can! generate your own pixel art images (off-blockchain)
164
+ using any design (in ascii text) in any colors; incl. 2x/4x/8x zoom for bigger sizes
163
165
  test_files: []