imogen 0.0.4 → 0.0.6

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,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- YTA2MDk1MWEyM2FhODg0MTMwZTcxOWY4NzY1NDc4YjZhMGYzNGJlMg==
4
+ MGE0NjZkODZkZGE5MzQzMjZlMDkxMTE0NWY4NjEzMmZlMjMzMTQwNg==
5
5
  data.tar.gz: !binary |-
6
- MmQyZjQwNWVmMWJjYzljYWQ2MTdlNDJkZGNjMmY4ZGYyNzBhODgwYQ==
6
+ MDdkYTJjMThhMzEzNDQ3MDVlZGNhMjliYzBmM2E2YTczYWJhMzcwMA==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- NTBiZWY3YzlmODYyYWNkNGMwZjQ2NmNhMDk2MDk2NmJhMTU1YTEyMTNlNTE2
10
- MmVhZjQxN2UxMTFkMDBjM2U3ZDg1YTI0NGYzMWFjZTdkYzk4MDYxZjk3MDc1
11
- MDg5ZGRlYTY1NzU0MjlkNWNjOWJlYWFjYzA4MWFlOTNmM2E5MjE=
9
+ OGQ4ZmUyNWE4YjFmN2EyMDhlNjVhZWYxMzRlNjFmM2EyNWM3ODdkNTA1ZmZj
10
+ NzYyNWRiZWEyMjhmY2Y0NGM2MzljMmRjNmEzM2U0ZTc0NmJlYTM2MDQyMmE4
11
+ OTg1YmQ0NjlhYmUyMDRhY2YzOTg4YjRiOGNjZmU5MDg1MzAxM2E=
12
12
  data.tar.gz: !binary |-
13
- NjE5NjRlZGM0NDYyNWFjYWUwYzUwYTQyNTc0NjY1YjI0OGNjNDAzYTMwYjgw
14
- OTk0MjQ2ZGRkMTA3ZjdlMWQ3NGFkYTIzZTY3YzdmZDM5YmE3YmI1ODhmNmUz
15
- OWI0YTM2ZTQyNDMyZWQ5MmExYTRiMGYzNjU2M2JiMTA0Mjc5YWY=
13
+ NTQ3MjUyOGM4YzU0MDQ5YTVjYmYzNzg1NmM4OWMxNzE5OGYwNTk5ZmU3ZDJl
14
+ ZWEzYWJjMTMwNTFjZWFkMWJlMGFjOWUwZjJkNWIzOGIzMzUyMmVhN2Q0NDQ3
15
+ YjVkYmRlMGE1ZTI0NTBiNGFlZGVkMzE1YjFmNjE0OGY0Y2Y1MTU=
@@ -65,15 +65,28 @@ module Imogen::AutoCrop::Box
65
65
  class BoxInfo
66
66
  attr_reader :x, :y
67
67
  attr_accessor :radius
68
+ SQUARISH = 5.to_f / 6
68
69
  def initialize(x,y,r)
69
70
  @x = x
70
71
  @y = y
71
72
  @radius = r
72
73
  end
73
74
  end
75
+ def self.squarish?(img)
76
+ if img.is_a? FreeImage::Bitmap
77
+ dims = [img.width, img.height]
78
+ ratio = dims.min.to_f / dims.max
79
+ return ratio >= BoxInfo::SQUARISH
80
+ elsif img.is_a? OpenCV::CvMat
81
+ dims = [img.cols, img.rows]
82
+ ratio = dims.min.to_f / dims.max
83
+ return ratio >= BoxInfo::SQUARISH
84
+ else
85
+ raise "#{img.class.name} is not a FreeImage::Bitmap"
86
+ end
87
+ end
74
88
  def self.info(grayscale)
75
89
  dims = [grayscale.cols, grayscale.rows]
76
- ratio = dims.min / dims.max
77
- ratio < 0.84 ? Best.new(grayscale).box() : Center.new(grayscale).box()
90
+ squarish?(grayscale) ? Center.new(grayscale).box() : Best.new(grayscale).box()
78
91
  end
79
92
  end
@@ -13,6 +13,10 @@ class Edges
13
13
  img = src
14
14
  @xoffset = img.width.to_f/6
15
15
  @yoffset = img.height.to_f/6
16
+ if Imogen::AutoCrop::Box.squarish? img
17
+ @xoffset = @xoffset/2
18
+ @yoffset = @yoffset/2
19
+ end
16
20
  @tempfile = Tempfile.new(['crop','.png'])
17
21
 
18
22
  img.copy(@xoffset,@yoffset,img.width-@xoffset,img.height-@yoffset) do |crop|
@@ -1,4 +1,3 @@
1
- #require 'image_science'
2
1
  module Imogen
3
2
  module Zoomable
4
3
  def self.levels_for(*dims)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: imogen
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ben Armintor
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-08-12 00:00:00.000000000 Z
11
+ date: 2014-08-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ruby-opencv