pixel_matcher 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
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