pixel_matcher 0.0.2 → 0.0.3

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: a265a3a6340812f32f4f438182a263e5f51428b75fd11a2085700fb455c9a4e4
4
- data.tar.gz: f842ba4e06f8731225956314fca77544615bd9b021a37e2bd2a6fbd81ea2a07c
3
+ metadata.gz: 6f74eb9515f4f4afbc889420fe889cea52a8f222eb07345a2a7d536744f81283
4
+ data.tar.gz: 735290ba76f513abe2da41bd814e2459e0ca049d02cda7cd1097080911cf5164
5
5
  SHA512:
6
- metadata.gz: 749712981d31f8b49f99a43c086e3b77e0900a0f4a41de15ae5a2c8a676ab8e73216ee5c61778aa49cc454344a0d8dbd89ba164d3b0b748de194280fe696bf71
7
- data.tar.gz: 2ce49467b2110c9bf0ab57bf6e543726f2c3f57b3eabfc8320e9c9fb90f5c9f7dc1a5891dae1160a36d50ce07de6514760bb049ee74f3d47b238d06f11d1d4b9
6
+ metadata.gz: 16cd3a165ee5f880436485ecd11c764476a116a78bcc6f35a78c065fa89166519433c40f8ee4dcddfbe4c345a7bc9ad827dec38289e0d57e76f09e3f4dd86b89
7
+ data.tar.gz: 138df0c70c5bd2bbfa42b805ee806c9a11474465598cd9589805038cbe469a5b54177b0b20f3d4a3d7efb73ab5944874aea002643729042e514fde2aa38b8215
data/Gemfile.lock CHANGED
@@ -1,19 +1,32 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- pixel_matcher (0.0.2)
4
+ pixel_matcher (0.0.3)
5
5
  rmagick (~> 4.0)
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
9
9
  specs:
10
+ ast (2.4.0)
11
+ backport (1.1.2)
10
12
  coderay (1.1.2)
11
13
  diff-lcs (1.3)
14
+ jaro_winkler (1.5.4)
15
+ maruku (0.7.3)
12
16
  method_source (0.9.2)
17
+ mini_portile2 (2.4.0)
18
+ nokogiri (1.10.7)
19
+ mini_portile2 (~> 2.4.0)
20
+ parallel (1.19.1)
21
+ parser (2.7.0.1)
22
+ ast (~> 2.4.0)
13
23
  pry (0.12.2)
14
24
  coderay (~> 1.1.0)
15
25
  method_source (~> 0.9.0)
26
+ rainbow (3.0.0)
16
27
  rake (10.5.0)
28
+ reverse_markdown (1.3.0)
29
+ nokogiri
17
30
  rmagick (4.0.0)
18
31
  rspec (3.9.0)
19
32
  rspec-core (~> 3.9.0)
@@ -28,6 +41,30 @@ GEM
28
41
  diff-lcs (>= 1.2.0, < 2.0)
29
42
  rspec-support (~> 3.9.0)
30
43
  rspec-support (3.9.2)
44
+ rubocop (0.78.0)
45
+ jaro_winkler (~> 1.5.1)
46
+ parallel (~> 1.10)
47
+ parser (>= 2.6)
48
+ rainbow (>= 2.2.2, < 4.0)
49
+ ruby-progressbar (~> 1.7)
50
+ unicode-display_width (>= 1.4.0, < 1.7)
51
+ ruby-progressbar (1.10.1)
52
+ solargraph (0.38.0)
53
+ backport (~> 1.1)
54
+ bundler (>= 1.17.2)
55
+ jaro_winkler (~> 1.5)
56
+ maruku (~> 0.7, >= 0.7.3)
57
+ nokogiri (~> 1.9, >= 1.9.1)
58
+ parser (~> 2.3)
59
+ reverse_markdown (~> 1.0, >= 1.0.5)
60
+ rubocop (~> 0.52)
61
+ thor (~> 0.19, >= 0.19.4)
62
+ tilt (~> 2.0)
63
+ yard (~> 0.9)
64
+ thor (0.20.3)
65
+ tilt (2.0.10)
66
+ unicode-display_width (1.6.0)
67
+ yard (0.9.22)
31
68
 
32
69
  PLATFORMS
33
70
  ruby
@@ -38,6 +75,7 @@ DEPENDENCIES
38
75
  pry (~> 0.12.2)
39
76
  rake (~> 10.0)
40
77
  rspec (~> 3.0)
78
+ solargraph
41
79
 
42
80
  BUNDLED WITH
43
81
  2.0.2
data/README.md CHANGED
@@ -21,9 +21,21 @@ Or install it yourself as:
21
21
  ## Usage
22
22
 
23
23
  ```ruby
24
- require 'pixel_matcher
24
+ require 'pixel_matcher'
25
25
 
26
- diff = PixelMatcher::DiffImage('img1.png', 'img2.png')
26
+ # from rmagick image
27
+ require 'rmagick'
28
+ diff = PixelMatcher::DiffImage.new(Magick::Image.read('img1.png').first, Magick::Image.read('img2.png').first)
29
+ diff.export_diff('diff.png')
30
+ diff.export_gray_scale('gray_scale.png')
31
+
32
+ # from file path
33
+ diff = PixelMatcher::DiffImage.from_path('img1.png', 'img2.png')
34
+ diff.export_diff('diff.png')
35
+ diff.export_gray_scale('gray_scale.png')
36
+
37
+ # from blob
38
+ diff = PixelMatcher::DiffImage.from_blob(File.read('img1.png'), File.read('img2.png'))
27
39
  diff.export_diff('diff.png')
28
40
  diff.export_gray_scale('gray_scale.png')
29
41
  ```
@@ -1,14 +1,26 @@
1
1
  require 'rmagick'
2
2
 
3
3
  module PixelMatcher
4
- class DiffImage < Magick::Image
5
- def initialize(path1, path2)
6
- @img1 = Magick::Image.read(path1).first
7
- @img2 = Magick::Image.read(path2).first
4
+ class DiffImage
5
+ def initialize(img1, img2)
6
+ @img1 = img1
7
+ @img2 = img2
8
8
  @gray_scale = @img1.clone.quantize(256, Magick::GRAYColorspace)
9
9
  @diff = Magick::Image.new(@img1.columns, @img1.rows)
10
10
  end
11
11
 
12
+ def self.from_path(path1, path2)
13
+ img1 = Magick::Image.read(path1).first
14
+ img2 = Magick::Image.read(path2).first
15
+ self.new(img1, img2)
16
+ end
17
+
18
+ def self.from_blob(bin1, bin2)
19
+ img1 = Magick::Image.from_blob(bin1).first
20
+ img2 = Magick::Image.from_blob(bin2).first
21
+ self.new(img1, img2)
22
+ end
23
+
12
24
  def export_diff(output_path)
13
25
  store_diff
14
26
  @diff.write(output_path)
@@ -26,7 +38,7 @@ module PixelMatcher
26
38
  def store_diff
27
39
  @img1.columns.times do |i|
28
40
  @img1.rows.times do |j|
29
- @diff.store_pixels(i, j, 1, 1, [@img1.pixel_color(i, j)]) unless eq_pixel?(@img1, @img2, i, j)
41
+ @diff.store_pixels(i, j, 1, 1, [@img1.pixel_color(i, j)]) unless eq_pixel?(i, j)
30
42
  end
31
43
  end
32
44
  end
@@ -34,17 +46,13 @@ module PixelMatcher
34
46
  def store_gray_scale_diff
35
47
  @img1.columns.times do |i|
36
48
  @img1.rows.times do |j|
37
- @gray_scale.store_pixels(i, j, 1, 1, [@img1.pixel_color(i, j)]) unless eq_pixel?(@img1, @img2, i, j)
49
+ @gray_scale.store_pixels(i, j, 1, 1, [@img1.pixel_color(i, j)]) unless eq_pixel?(i, j)
38
50
  end
39
51
  end
40
52
  end
41
- end
42
- end
43
-
44
- def image_array(img)
45
- img.export_pixels.each_slice(3).each_slice(img.columns).to_a
46
- end
47
53
 
48
- def eq_pixel?(img1, img2, i, j)
49
- img1.pixel_color(i, j) == img2.pixel_color(i, j)
54
+ def eq_pixel?(i, j)
55
+ @img1.pixel_color(i, j) == @img2.pixel_color(i, j)
56
+ end
57
+ end
50
58
  end
@@ -1,3 +1,3 @@
1
1
  module PixelMatcher
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
@@ -29,4 +29,5 @@ Gem::Specification.new do |spec|
29
29
  spec.add_development_dependency "rake", "~> 10.0"
30
30
  spec.add_development_dependency "rspec", "~> 3.0"
31
31
  spec.add_development_dependency 'pry', '~> 0.12.2'
32
+ spec.add_development_dependency "solargraph"
32
33
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pixel_matcher
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - ksk001100
@@ -80,6 +80,20 @@ dependencies:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
82
  version: 0.12.2
83
+ - !ruby/object:Gem::Dependency
84
+ name: solargraph
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'
83
97
  description: Library to compare images and generate difference image files
84
98
  email:
85
99
  - hm.pudding0715@gmail.com