imogen 0.0.4 → 0.0.6

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