zpng 0.4.2 → 0.4.4

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: c97dbfaadf55cefb99220c713c5f7a7d909e11d0350d811f617046bce519a645
4
- data.tar.gz: 8e249402ddd8052020c2e61a9c4f130ea8108d362d999c44d3473cbb3ee741f8
3
+ metadata.gz: 6b35d6d1f87f6a32f1de261d07be9a5670cad8892fdf8033a46c6189ac60c6c5
4
+ data.tar.gz: 584811c71db552f0b07f701f324b3e359d101c7650c975280f6c529cc8ecb246
5
5
  SHA512:
6
- metadata.gz: bae0bdfcf278b4132d3a5f36c7cba4d7714a6f7a12d637662ece94ef9d48628aa08c92657ff385a5e21c441730d584875f38eb990e76f1daf3b19eee394313cc
7
- data.tar.gz: de91174b8e0696d325102e6d95231ce3eef147905cc9335a1ff6ca4f37c1beac0c21616ea38351eaf82951f1f9677886b10e66716bb726bda930ca992ae2fc23
6
+ metadata.gz: e22d560929ca762532c078ac6ab7732788032ec58e86d20156c35169f0ebf44c498b69069adcb563b70ab8f770aa20116c5c5da4e9bd2847a716c504bc164c5f
7
+ data.tar.gz: b34d79aa9ca9b1c4bfa8770ca59c463eff6155687e27891f143b19fc142e07c914e1d7412f51446bacb6ba637b3879c9e662c06cb0003b51fff4d102b2ec5d8c
data/Gemfile CHANGED
@@ -2,14 +2,12 @@ source "http://rubygems.org"
2
2
  # Add dependencies required to use your gem here.
3
3
  # Example:
4
4
  # gem "activesupport", ">= 2.3.5"
5
- gem 'rainbow'
5
+ gem 'rainbow', '~> 3.1.1'
6
6
 
7
7
  # Add dependencies to develop your gem here.
8
8
  # Include everything needed to run rake, tests, features, etc.
9
9
  group :development do
10
- gem "rspec", "~> 3.9.0"
11
- gem "rspec-its", "~> 1.3.0"
12
- gem "bundler", "~> 2.2.3"
13
- gem "juwelier"
14
- gem "what_methods"
10
+ gem "rspec", '~> 3.11.0'
11
+ gem "rspec-its", '~> 1.3.0'
12
+ gem "juwelier", '~> 2.4.9'
15
13
  end
data/Gemfile.lock CHANGED
@@ -7,7 +7,7 @@ GEM
7
7
  descendants_tracker (0.0.4)
8
8
  thread_safe (~> 0.3, >= 0.3.1)
9
9
  diff-lcs (1.5.0)
10
- faraday (1.9.3)
10
+ faraday (1.10.0)
11
11
  faraday-em_http (~> 1.0)
12
12
  faraday-em_synchrony (~> 1.0)
13
13
  faraday-excon (~> 1.1)
@@ -23,14 +23,15 @@ GEM
23
23
  faraday-em_synchrony (1.0.0)
24
24
  faraday-excon (1.1.0)
25
25
  faraday-httpclient (1.0.1)
26
- faraday-multipart (1.0.3)
27
- multipart-post (>= 1.2, < 3)
26
+ faraday-multipart (1.0.4)
27
+ multipart-post (~> 2)
28
28
  faraday-net_http (1.0.1)
29
29
  faraday-net_http_persistent (1.2.0)
30
30
  faraday-patron (1.0.0)
31
31
  faraday-rack (1.0.0)
32
32
  faraday-retry (1.0.3)
33
- git (1.10.2)
33
+ git (1.13.1)
34
+ addressable (~> 2.8)
34
35
  rchardet (~> 1.8)
35
36
  github_api (0.19.0)
36
37
  addressable (~> 2.4)
@@ -52,64 +53,61 @@ GEM
52
53
  rake
53
54
  rdoc
54
55
  semver2
55
- jwt (2.3.0)
56
+ jwt (2.4.1)
56
57
  kamelcase (0.0.2)
57
58
  semver2 (~> 3)
58
- mini_portile2 (2.8.0)
59
+ mini_portile2 (2.8.1)
59
60
  multi_json (1.15.0)
60
61
  multi_xml (0.6.0)
61
- multipart-post (2.1.1)
62
- nokogiri (1.13.3)
62
+ multipart-post (2.2.3)
63
+ nokogiri (1.14.2)
63
64
  mini_portile2 (~> 2.8.0)
64
65
  racc (~> 1.4)
65
- oauth2 (1.4.7)
66
- faraday (>= 0.8, < 2.0)
66
+ oauth2 (1.4.11)
67
+ faraday (>= 0.17.3, < 3.0)
67
68
  jwt (>= 1.0, < 3.0)
68
69
  multi_json (~> 1.3)
69
70
  multi_xml (~> 0.5)
70
- rack (>= 1.2, < 3)
71
- psych (4.0.3)
71
+ rack (>= 1.2, < 4)
72
+ psych (4.0.4)
72
73
  stringio
73
- public_suffix (4.0.6)
74
- racc (1.6.0)
75
- rack (2.2.3)
74
+ public_suffix (4.0.7)
75
+ racc (1.6.2)
76
+ rack (3.0.4.1)
76
77
  rainbow (3.1.1)
77
78
  rake (13.0.6)
78
79
  rchardet (1.8.0)
79
80
  rdoc (6.4.0)
80
81
  psych (>= 4.0.0)
81
- rspec (3.9.0)
82
- rspec-core (~> 3.9.0)
83
- rspec-expectations (~> 3.9.0)
84
- rspec-mocks (~> 3.9.0)
85
- rspec-core (3.9.3)
86
- rspec-support (~> 3.9.3)
87
- rspec-expectations (3.9.4)
82
+ rspec (3.11.0)
83
+ rspec-core (~> 3.11.0)
84
+ rspec-expectations (~> 3.11.0)
85
+ rspec-mocks (~> 3.11.0)
86
+ rspec-core (3.11.0)
87
+ rspec-support (~> 3.11.0)
88
+ rspec-expectations (3.11.0)
88
89
  diff-lcs (>= 1.2.0, < 2.0)
89
- rspec-support (~> 3.9.0)
90
+ rspec-support (~> 3.11.0)
90
91
  rspec-its (1.3.0)
91
92
  rspec-core (>= 3.0.0)
92
93
  rspec-expectations (>= 3.0.0)
93
- rspec-mocks (3.9.1)
94
+ rspec-mocks (3.11.1)
94
95
  diff-lcs (>= 1.2.0, < 2.0)
95
- rspec-support (~> 3.9.0)
96
- rspec-support (3.9.4)
96
+ rspec-support (~> 3.11.0)
97
+ rspec-support (3.11.0)
97
98
  ruby2_keywords (0.0.5)
98
99
  semver2 (3.4.2)
99
- stringio (3.0.1)
100
+ stringio (3.0.2)
100
101
  thread_safe (0.3.6)
101
- what_methods (1.0.1)
102
102
 
103
103
  PLATFORMS
104
104
  ruby
105
105
 
106
106
  DEPENDENCIES
107
- bundler (~> 2.2.3)
108
- juwelier
109
- rainbow
110
- rspec (~> 3.9.0)
107
+ juwelier (~> 2.4.9)
108
+ rainbow (~> 3.1.1)
109
+ rspec (~> 3.11.0)
111
110
  rspec-its (~> 1.3.0)
112
- what_methods
113
111
 
114
112
  BUNDLED WITH
115
- 2.2.32
113
+ 2.3.12
data/Rakefile CHANGED
@@ -23,6 +23,7 @@ Juwelier::Tasks.new do |gem|
23
23
  gem.authors = ["Andrey \"Zed\" Zaikin"]
24
24
  gem.executables = %w'zpng'
25
25
  gem.files.include "lib/**/*.rb"
26
+ gem.files.exclude "samples/**/*"
26
27
  # dependencies defined in Gemfile
27
28
  end
28
29
  Juwelier::RubygemsDotOrgTasks.new
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.4.2
1
+ 0.4.4
@@ -1,19 +1,20 @@
1
1
  module ZPNG
2
2
  class Adam7Decoder
3
- attr_accessor :image
3
+ attr_accessor :bpp
4
4
  attr_reader :scanlines_count
5
5
 
6
6
  # http://en.wikipedia.org/wiki/Adam7_algorithm#Passes
7
- def initialize img
8
- @image = img
7
+ def initialize width, height, bpp
8
+ @bpp = bpp
9
+ raise "Invalid BPP #{@bpp.inspect}" if @bpp.to_i == 0
9
10
  @widths = [
10
- [(img.width/8.0).ceil] * (img.height/8.0).ceil, # pass1
11
- [((img.width-4)/8.0).ceil] * (img.height/8.0).ceil, # pass2
12
- [(img.width/4.0).ceil] * ((img.height-4)/8.0).ceil, # pass3
13
- [((img.width-2)/4.0).ceil] * (img.height/4.0).ceil, # pass4
14
- [(img.width/2.0).ceil] * ((img.height-2)/4.0).ceil, # pass5
15
- [((img.width-1)/2.0).ceil] * (img.height/2.0).ceil, # pass6
16
- [img.width] * ((img.height-1)/2.0).ceil # pass7
11
+ [(width/8.0).ceil] * (height/8.0).ceil, # pass1
12
+ [((width-4)/8.0).ceil] * (height/8.0).ceil, # pass2
13
+ [(width/4.0).ceil] * ((height-4)/8.0).ceil, # pass3
14
+ [((width-2)/4.0).ceil] * (height/4.0).ceil, # pass4
15
+ [(width/2.0).ceil] * ((height-2)/4.0).ceil, # pass5
16
+ [((width-1)/2.0).ceil] * (height/2.0).ceil, # pass6
17
+ [width] * ((height-1)/2.0).ceil # pass7
17
18
  ].map{ |x| x == [0] ? [] : x }
18
19
  @scanlines_count = 0
19
20
  # two leading zeroes added specially for convert_coords() code readability
@@ -28,7 +29,7 @@ module ZPNG
28
29
 
29
30
  # scanline size in bytes, INCLUDING leading filter byte
30
31
  def scanline_size idx
31
- (scanline_width(idx) * image.bpp / 8.0).ceil + 1
32
+ (scanline_width(idx) * bpp / 8.0).ceil + 1
32
33
  end
33
34
 
34
35
  # scanline offset in imagedata
data/lib/zpng/chunk.rb CHANGED
@@ -51,10 +51,10 @@ module ZPNG
51
51
  end
52
52
  end
53
53
 
54
- def export
54
+ def export( fix_crc: true )
55
55
  @data = self.export_data # virtual
56
56
  @size = @data.size # XXX hmm.. is it always is?
57
- fix_crc!
57
+ fix_crc! if fix_crc
58
58
  [@size,@type].pack('Na4') + @data + [@crc].pack('N')
59
59
  end
60
60
 
@@ -98,6 +98,9 @@ module ZPNG
98
98
  class IHDR < Chunk
99
99
  attr_accessor :width, :height, :depth, :color, :compression, :filter, :interlace
100
100
 
101
+ SIZE = 13
102
+ FORMAT = 'NNC5'
103
+
101
104
  PALETTE_USED = 1
102
105
  COLOR_USED = 2
103
106
  ALPHA_USED = 4
@@ -130,8 +133,6 @@ module ZPNG
130
133
  COLOR_RGBA => [ 8, 16 ],
131
134
  }
132
135
 
133
- FORMAT = 'NNC5'
134
-
135
136
  def initialize x
136
137
  super
137
138
  vars = %w'width height depth color compression filter interlace' # order is important
@@ -173,7 +174,7 @@ module ZPNG
173
174
  @filter ||= 0
174
175
  @interlace ||= 0
175
176
 
176
- unless ALLOWED_DEPTHS[@color].include?(@depth)
177
+ unless ALLOWED_DEPTHS[@color]&.include?(@depth)
177
178
  raise "[!] invalid color mode (#{@color.inspect}) / bit depth (#{@depth.inspect}) combination"
178
179
  end
179
180
  end
@@ -190,7 +191,8 @@ module ZPNG
190
191
 
191
192
  # bits per pixel
192
193
  def bpp
193
- SAMPLES_PER_COLOR[@color] * depth
194
+ spc = SAMPLES_PER_COLOR[@color]
195
+ spc ? spc * depth : nil
194
196
  end
195
197
 
196
198
  def color_used?
@@ -275,8 +277,32 @@ module ZPNG
275
277
  alias :<< :find_or_add
276
278
  end
277
279
 
280
+ class CHRM < Chunk
281
+ SIZE = 32
282
+ end
283
+
284
+ class GAMA < Chunk
285
+ SIZE = 4
286
+ end
287
+
278
288
  class IDAT < Chunk; end
279
- class IEND < Chunk; end
289
+
290
+ class TIME < Chunk
291
+ SIZE = 7
292
+ end
293
+
294
+ class IEND < Chunk
295
+ SIZE = 4
296
+ end
297
+
298
+ class PHYS < Chunk
299
+ SIZE = 9
300
+ end
301
+
302
+ class SRGB < Chunk
303
+ SIZE = 1
304
+ end
305
+
280
306
  class TRNS < Chunk; end
281
307
 
282
308
  end
data/lib/zpng/cli.rb CHANGED
@@ -179,13 +179,15 @@ module ZPNG
179
179
  color = %w'COLOR_GRAYSCALE COLOR_RGB COLOR_INDEXED COLOR_GRAY_ALPHA COLOR_RGBA'.find do |k|
180
180
  @img.hdr.color == ZPNG.const_get(k)
181
181
  end
182
- puts "[.] image size #{@img.width || '?'}x#{@img.height || '?'}, #{@img.bpp}bpp, #{color}"
182
+ puts "[.] image size #{@img.width || '?'}x#{@img.height || '?'}, #{@img.bpp || '?'}bpp, #{color}"
183
183
  puts "[.] palette = #{@img.palette}" if @img.palette
184
- puts "[.] uncompressed imagedata size = #{@img.imagedata_size} bytes"
184
+ puts "[.] uncompressed imagedata size = #{@img.imagedata_size || '?'} bytes"
185
185
  _conditional_hexdump(@img.imagedata, 3) if @options[:verbose] > 0
186
186
  end
187
187
 
188
188
  def _conditional_hexdump data, v2 = 2
189
+ return unless data
190
+
189
191
  if @options[:verbose] <= 0
190
192
  # do nothing
191
193
  elsif @options[:verbose] < v2
@@ -221,7 +223,11 @@ module ZPNG
221
223
  end
222
224
  puts "[.] #{chunk.inspect(@options[:verbose]).sub(chunk.type, colored_type)} #{colored_crc}"
223
225
 
224
- _conditional_hexdump(chunk.data) unless chunk.size == 0
226
+ if @options[:verbose] >= 3
227
+ _conditional_hexdump(chunk.export(fix_crc: false))
228
+ else
229
+ _conditional_hexdump(chunk.data)
230
+ end
225
231
  end
226
232
  end
227
233
 
data/lib/zpng/image.rb CHANGED
@@ -62,7 +62,7 @@ module ZPNG
62
62
  end
63
63
 
64
64
  def adam7
65
- @adam7 ||= Adam7Decoder.new(self)
65
+ @adam7 ||= Adam7Decoder.new(width, height, bpp)
66
66
  end
67
67
 
68
68
  class << self
@@ -119,7 +119,7 @@ module ZPNG
119
119
  io.seek(chunk.offset+delta, IO::SEEK_SET)
120
120
  potential_chunk = Chunk.new(io)
121
121
  if potential_chunk.valid?
122
- STDERR.puts "[!] heuristics: found invalid chunk at offset #{chunk.offset}, but valid one at #{chunk.offset+delta}. using latter".red
122
+ STDERR.puts "[!] heuristics: found invalid #{chunk.type.inspect} chunk at offset #{chunk.offset}, but valid #{potential_chunk.type.inspect} at #{chunk.offset+delta}. using latter".red
123
123
  if delta > 0
124
124
  io.seek(chunk.offset, IO::SEEK_SET)
125
125
  data = io.read(delta)
@@ -330,7 +330,7 @@ module ZPNG
330
330
  if new_image?
331
331
  @scanlines.map(&:size).inject(&:+)
332
332
  else
333
- imagedata.size
333
+ imagedata&.size
334
334
  end
335
335
  end
336
336
 
data/spec/adam7_spec.rb CHANGED
@@ -13,9 +13,7 @@ describe ZPNG::Adam7Decoder do
13
13
  }.each do |dims, slw|
14
14
  it "should be right for #{dims} image" do
15
15
  w,h = dims.split('x').map(&:to_i)
16
- img = Object.new
17
- allow(img).to receive_messages(:width => w, :height => h)
18
- adam7 = ZPNG::Adam7Decoder.new(img)
16
+ adam7 = ZPNG::Adam7Decoder.new(w, h, 8)
19
17
  slw.size.times.map{ |i| adam7.scanline_width(i) }.should == slw
20
18
  end
21
19
  end
@@ -34,9 +32,7 @@ describe ZPNG::Adam7Decoder do
34
32
  }.each do |dims, n|
35
33
  it "should be right for #{dims} image" do
36
34
  w,h = dims.split('x').map(&:to_i)
37
- img = Object.new
38
- allow(img).to receive_messages(:width => w, :height => h)
39
- adam7 = ZPNG::Adam7Decoder.new(img)
35
+ adam7 = ZPNG::Adam7Decoder.new(w, h, 8)
40
36
  adam7.scanlines_count.should == n
41
37
  end
42
38
  end
@@ -54,9 +50,7 @@ describe ZPNG::Adam7Decoder do
54
50
  }.each do |dims, pst|
55
51
  it "should be right for #{dims} image" do
56
52
  w,h = dims.split('x').map(&:to_i)
57
- img = Object.new
58
- allow(img).to receive_messages(:width => w, :height => h)
59
- adam7 = ZPNG::Adam7Decoder.new(img)
53
+ adam7 = ZPNG::Adam7Decoder.new(w, h, 8)
60
54
  adam7.instance_variable_get("@pass_starts").should == pst
61
55
  end
62
56
  end
@@ -15,6 +15,7 @@ each_sample("bad/*.png") do |fname|
15
15
  end
16
16
 
17
17
  it "should access 1st pixel" do
18
+ skip "no BPP" unless @img.bpp
18
19
  @img[0,0].should be_instance_of(ZPNG::Color)
19
20
  end
20
21
 
@@ -31,6 +32,7 @@ each_sample("bad/*.png") do |fname|
31
32
  end
32
33
 
33
34
  it "shows scanlines" do
35
+ skip "no BPP" unless @img.bpp
34
36
  orig_stdout, out = $stdout, ""
35
37
  begin
36
38
  $stdout = StringIO.new(out)
@@ -32,8 +32,9 @@ describe Image do
32
32
  end
33
33
 
34
34
  describe "new( :bpp => 16, :color => true )" do
35
- subject{ lambda{ _new_img(16,true) } }
36
- it { should raise_exception(RuntimeError) }
35
+ it "raises error" do
36
+ lambda { _new_img(16,true) }.should raise_error(RuntimeError)
37
+ end
37
38
  end
38
39
 
39
40
  describe "new( :bpp => 24, :color => false )" do
@@ -1,5 +1,5 @@
1
1
  module PNGSuite
2
- PNG_SUITE_URL = "http://www.schaik.com/pngsuite/PngSuite-2011apr25.tgz"
2
+ PNG_SUITE_URL = "http://www.schaik.com/pngsuite/PngSuite-2017jul19.tgz"
3
3
 
4
4
  class << self
5
5
  attr_accessor :dir
data/zpng.gemspec CHANGED
@@ -2,16 +2,16 @@
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
3
  # Instead, edit Juwelier::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
- # stub: zpng 0.4.2 ruby lib
5
+ # stub: zpng 0.4.4 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "zpng".freeze
9
- s.version = "0.4.2"
9
+ s.version = "0.4.4"
10
10
 
11
11
  s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
12
12
  s.require_paths = ["lib".freeze]
13
13
  s.authors = ["Andrey \"Zed\" Zaikin".freeze]
14
- s.date = "2022-03-01"
14
+ s.date = "2023-02-14"
15
15
  s.email = "zed.0xff@gmail.com".freeze
16
16
  s.executables = ["zpng".freeze]
17
17
  s.extra_rdoc_files = [
@@ -51,25 +51,6 @@ Gem::Specification.new do |s|
51
51
  "lib/zpng/text_chunk.rb",
52
52
  "misc/chars.png",
53
53
  "misc/gen_ascii_map.rb",
54
- "samples/bad/000000.png",
55
- "samples/bad/149511457-47db5096-662d-4221-84f9-1c2a0e20e323.png",
56
- "samples/bad/b1.png",
57
- "samples/captcha_4bpp.png",
58
- "samples/cats.png",
59
- "samples/itxt.png",
60
- "samples/modify.rb",
61
- "samples/mouse.bmp",
62
- "samples/mouse.png",
63
- "samples/mouse17.bmp",
64
- "samples/mouse17.png",
65
- "samples/qr_aux_chunks.png",
66
- "samples/qr_bw.png",
67
- "samples/qr_gray_alpha.png",
68
- "samples/qr_grayscale.png",
69
- "samples/qr_plte.png",
70
- "samples/qr_plte_bw.png",
71
- "samples/qr_rgb.png",
72
- "samples/qr_rgba.png",
73
54
  "spec/adam7_spec.rb",
74
55
  "spec/alpha_spec.rb",
75
56
  "spec/ascii_spec.rb",
@@ -95,7 +76,7 @@ Gem::Specification.new do |s|
95
76
  ]
96
77
  s.homepage = "http://github.com/zed-0xff/zpng".freeze
97
78
  s.licenses = ["MIT".freeze]
98
- s.rubygems_version = "3.2.32".freeze
79
+ s.rubygems_version = "3.3.7".freeze
99
80
  s.summary = "pure ruby PNG file manipulation & validation".freeze
100
81
 
101
82
  if s.respond_to? :specification_version then
@@ -103,19 +84,15 @@ Gem::Specification.new do |s|
103
84
  end
104
85
 
105
86
  if s.respond_to? :add_runtime_dependency then
106
- s.add_runtime_dependency(%q<rainbow>.freeze, [">= 0"])
107
- s.add_development_dependency(%q<rspec>.freeze, ["~> 3.9.0"])
87
+ s.add_runtime_dependency(%q<rainbow>.freeze, ["~> 3.1.1"])
88
+ s.add_development_dependency(%q<rspec>.freeze, ["~> 3.11.0"])
108
89
  s.add_development_dependency(%q<rspec-its>.freeze, ["~> 1.3.0"])
109
- s.add_development_dependency(%q<bundler>.freeze, ["~> 2.2.3"])
110
- s.add_development_dependency(%q<juwelier>.freeze, [">= 0"])
111
- s.add_development_dependency(%q<what_methods>.freeze, [">= 0"])
90
+ s.add_development_dependency(%q<juwelier>.freeze, ["~> 2.4.9"])
112
91
  else
113
- s.add_dependency(%q<rainbow>.freeze, [">= 0"])
114
- s.add_dependency(%q<rspec>.freeze, ["~> 3.9.0"])
92
+ s.add_dependency(%q<rainbow>.freeze, ["~> 3.1.1"])
93
+ s.add_dependency(%q<rspec>.freeze, ["~> 3.11.0"])
115
94
  s.add_dependency(%q<rspec-its>.freeze, ["~> 1.3.0"])
116
- s.add_dependency(%q<bundler>.freeze, ["~> 2.2.3"])
117
- s.add_dependency(%q<juwelier>.freeze, [">= 0"])
118
- s.add_dependency(%q<what_methods>.freeze, [">= 0"])
95
+ s.add_dependency(%q<juwelier>.freeze, ["~> 2.4.9"])
119
96
  end
120
97
  end
121
98
 
metadata CHANGED
@@ -1,43 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zpng
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.2
4
+ version: 0.4.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrey "Zed" Zaikin
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-03-01 00:00:00.000000000 Z
11
+ date: 2023-02-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rainbow
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0'
19
+ version: 3.1.1
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ">="
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '0'
26
+ version: 3.1.1
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rspec
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 3.9.0
33
+ version: 3.11.0
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 3.9.0
40
+ version: 3.11.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rspec-its
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -53,47 +53,19 @@ dependencies:
53
53
  - !ruby/object:Gem::Version
54
54
  version: 1.3.0
55
55
  - !ruby/object:Gem::Dependency
56
- name: bundler
56
+ name: juwelier
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: 2.2.3
61
+ version: 2.4.9
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: 2.2.3
69
- - !ruby/object:Gem::Dependency
70
- name: juwelier
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - ">="
74
- - !ruby/object:Gem::Version
75
- version: '0'
76
- type: :development
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - ">="
81
- - !ruby/object:Gem::Version
82
- version: '0'
83
- - !ruby/object:Gem::Dependency
84
- name: what_methods
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - ">="
88
- - !ruby/object:Gem::Version
89
- version: '0'
90
- type: :development
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - ">="
95
- - !ruby/object:Gem::Version
96
- version: '0'
68
+ version: 2.4.9
97
69
  description:
98
70
  email: zed.0xff@gmail.com
99
71
  executables:
@@ -135,25 +107,6 @@ files:
135
107
  - lib/zpng/text_chunk.rb
136
108
  - misc/chars.png
137
109
  - misc/gen_ascii_map.rb
138
- - samples/bad/000000.png
139
- - samples/bad/149511457-47db5096-662d-4221-84f9-1c2a0e20e323.png
140
- - samples/bad/b1.png
141
- - samples/captcha_4bpp.png
142
- - samples/cats.png
143
- - samples/itxt.png
144
- - samples/modify.rb
145
- - samples/mouse.bmp
146
- - samples/mouse.png
147
- - samples/mouse17.bmp
148
- - samples/mouse17.png
149
- - samples/qr_aux_chunks.png
150
- - samples/qr_bw.png
151
- - samples/qr_gray_alpha.png
152
- - samples/qr_grayscale.png
153
- - samples/qr_plte.png
154
- - samples/qr_plte_bw.png
155
- - samples/qr_rgb.png
156
- - samples/qr_rgba.png
157
110
  - spec/adam7_spec.rb
158
111
  - spec/alpha_spec.rb
159
112
  - spec/ascii_spec.rb
@@ -195,7 +148,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
195
148
  - !ruby/object:Gem::Version
196
149
  version: '0'
197
150
  requirements: []
198
- rubygems_version: 3.2.32
151
+ rubygems_version: 3.3.7
199
152
  signing_key:
200
153
  specification_version: 4
201
154
  summary: pure ruby PNG file manipulation & validation
Binary file
data/samples/bad/b1.png DELETED
Binary file
Binary file
data/samples/cats.png DELETED
Binary file
data/samples/itxt.png DELETED
Binary file
data/samples/modify.rb DELETED
@@ -1,20 +0,0 @@
1
- #!/usr/bin/env ruby
2
- require 'zpng'
3
- include ZPNG
4
-
5
- img = Image.new(File.join(File.dirname(__FILE__),"http.png"))
6
-
7
- puts "[.] original:"
8
- puts img.to_s
9
- puts
10
-
11
- img.width.times do |x|
12
- img[x,0] = (x % 2 == 0) ? Color::WHITE : Color::BLACK
13
- end
14
-
15
- puts "[.] modified:"
16
- puts img.to_s
17
-
18
- File.open("http-modified.png","wb") do |f|
19
- f << img.export
20
- end
data/samples/mouse.bmp DELETED
Binary file
data/samples/mouse.png DELETED
Binary file
data/samples/mouse17.bmp DELETED
Binary file
data/samples/mouse17.png DELETED
Binary file
Binary file
data/samples/qr_bw.png DELETED
Binary file
Binary file
Binary file
data/samples/qr_plte.png DELETED
Binary file
Binary file
data/samples/qr_rgb.png DELETED
Binary file
data/samples/qr_rgba.png DELETED
Binary file