easyimg_utils 0.6.1 → 0.6.6

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: 5f46e4a30a8cbcfe7166727983d2930d8690aa58060016d63cff168202f11987
4
- data.tar.gz: e7ff3d14f9c73b6b7af227e5f76689c294ed512c38823fcc96c452f0f964bfe8
3
+ metadata.gz: 4d9ac6449342efa070a858c26d96378947ca77231bcdc97339321b5dac0a316b
4
+ data.tar.gz: 22617abf8420c0cf4276e2198e02cae542aa29555d8579fcd66c60127e70afbe
5
5
  SHA512:
6
- metadata.gz: 599600135545dee8880298a4c6cb2703a7da4d87530197ad08162a87f8cfd1ab1a5401aed04ebe15788abb18dd800c356f49b8d4c3e670f4f76de7b06d3818d2
7
- data.tar.gz: ac7d4e7737fa56b5d03a450ef3bb619f827080c5b89810dc6a5aa3ca56b7495e93746aa4e22d858f42690d8617537dc9d2630c027102870288578818b9de4dbc
6
+ metadata.gz: 947e70b56bfeb36bf1c4d0e51bf5ba02bca9124083d46c27a55dd2669fcc3b06dbbfc48c9e2b0acfc6f42db89d6c71df1a125e30b6ff0d1f8431a5c535234828
7
+ data.tar.gz: a19e9e5da426cf4ab50f7040419158c30fede078f8545c6f6fa7e4fb4a3d3b2dfdcd3e41ebdce4ee3e43e6dfba2f8d75a76262e516190f7e8ee2ee0f45c4e41d
checksums.yaml.gz.sig CHANGED
Binary file
data.tar.gz.sig CHANGED
Binary file
data/lib/easyimg_utils.rb CHANGED
@@ -47,6 +47,7 @@ class EasyImgUtils
47
47
  extend CommandHelper
48
48
  include Magick
49
49
  include RXFHelperModule
50
+
50
51
 
51
52
  @commands = "
52
53
  * add rectangle # usage: add_rectangle(color: 'green', x1: 12, y1: 12, x2: 24, y2: 24)
@@ -55,6 +56,7 @@ class EasyImgUtils
55
56
  * animate Creates an animated gif e.g. animate('/tmp/a%d.png', '/tmp/b.gif')
56
57
  * blur # e.g. blur(x: 231, y: 123, w: 85, h: 85)
57
58
  * capture_screen # takes a screenshot of the desktop
59
+ * calc_resize # e.g. calc_resize '640x480' #=> 640x491
58
60
  * center_crop # crops from the centre of an image. Usage center_crop(width, height)
59
61
  * composite # overlay a smaller image on top of an image
60
62
  * contrast # changes the intensity between lighter and darker elements
@@ -85,6 +87,29 @@ class EasyImgUtils
85
87
 
86
88
  end
87
89
 
90
+ # e.g. calc_resize '1449x1932', '640x480' #=> 480x640
91
+ # e.g. calc_resize '518x1024', '*518x500' #=> "518x1024"
92
+ # the asterisk denotes a guaranteed the image will be resized using x or y
93
+ #
94
+ def self.calc_resize(geometry, new_geometry, force: false)
95
+
96
+ xy = geometry.split('x',2)
97
+ xy2 = new_geometry.split('x',2)
98
+
99
+ # find any locked geometry which guarantees the resize on either x or y
100
+ lock = xy2.find {|x| x =~ /^\*/}
101
+
102
+ a = xy.map {|x| x[/\d+/].to_i}
103
+ a2 = xy2.map {|x| x[/\d+/].to_i}
104
+
105
+ i = lock ? a2.index(lock[1..-1].to_i) : a.index(a.max)
106
+
107
+ factor = a2[i] / a[i].to_f
108
+
109
+ s3 = a.map {|x| (x * factor).round}.join('x')
110
+
111
+ end
112
+
88
113
  def add_rectangle(a=[], quality: nil, color: 'green', stroke_width: 5,
89
114
  x1: 0, y1: 0, x2: 0, y2: 0)
90
115
 
@@ -169,6 +194,12 @@ class EasyImgUtils
169
194
  end
170
195
  end
171
196
 
197
+ # calculates the new geometry after a resize
198
+ #
199
+ def calc_resize(geometry)
200
+ EasyImgUtils.calc_resize(info()[:geometry], geometry)
201
+ end
202
+
172
203
  def capture_screen(quality: nil)
173
204
 
174
205
  # defaults (silent=false, frame=false, descend=false,
@@ -321,8 +352,10 @@ class EasyImgUtils
321
352
 
322
353
  # defines the maximum size of an image while maintaining aspect ratio
323
354
  #
324
- def resize(geometry='320x240', quality: nil)
355
+ def resize(raw_geometry='320x240', quality: nil)
325
356
 
357
+ geometry = calc_resize(raw_geometry
358
+ )
326
359
  read() do |preview|
327
360
 
328
361
  preview.change_geometry!(geometry) do |cols, rows, img|
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: easyimg_utils
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.1
4
+ version: 0.6.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Robertson
@@ -35,7 +35,7 @@ cert_chain:
35
35
  KY48n99T12IOioQ4ghCO1L/UAg2taLOcZbMv4WpV1p9bXKhnrow81zeogZjjiNGS
36
36
  OmTAjCfyGFPC/1eXnSV5Smv8
37
37
  -----END CERTIFICATE-----
38
- date: 2020-05-13 00:00:00.000000000 Z
38
+ date: 2021-03-22 00:00:00.000000000 Z
39
39
  dependencies:
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: rmagick
@@ -43,60 +43,60 @@ dependencies:
43
43
  requirements:
44
44
  - - "~>"
45
45
  - !ruby/object:Gem::Version
46
- version: '4.1'
46
+ version: '4.2'
47
47
  - - ">="
48
48
  - !ruby/object:Gem::Version
49
- version: 4.1.2
49
+ version: 4.2.2
50
50
  type: :runtime
51
51
  prerelease: false
52
52
  version_requirements: !ruby/object:Gem::Requirement
53
53
  requirements:
54
54
  - - "~>"
55
55
  - !ruby/object:Gem::Version
56
- version: '4.1'
56
+ version: '4.2'
57
57
  - - ">="
58
58
  - !ruby/object:Gem::Version
59
- version: 4.1.2
59
+ version: 4.2.2
60
60
  - !ruby/object:Gem::Dependency
61
61
  name: rxfhelper
62
62
  requirement: !ruby/object:Gem::Requirement
63
63
  requirements:
64
64
  - - "~>"
65
65
  - !ruby/object:Gem::Version
66
- version: '0.9'
66
+ version: '1.1'
67
67
  - - ">="
68
68
  - !ruby/object:Gem::Version
69
- version: 0.9.4
69
+ version: 1.1.3
70
70
  type: :runtime
71
71
  prerelease: false
72
72
  version_requirements: !ruby/object:Gem::Requirement
73
73
  requirements:
74
74
  - - "~>"
75
75
  - !ruby/object:Gem::Version
76
- version: '0.9'
76
+ version: '1.1'
77
77
  - - ">="
78
78
  - !ruby/object:Gem::Version
79
- version: 0.9.4
79
+ version: 1.1.3
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: webp-ffi
82
82
  requirement: !ruby/object:Gem::Requirement
83
83
  requirements:
84
84
  - - "~>"
85
85
  - !ruby/object:Gem::Version
86
- version: '0.2'
86
+ version: '0.3'
87
87
  - - ">="
88
88
  - !ruby/object:Gem::Version
89
- version: 0.2.7
89
+ version: 0.3.1
90
90
  type: :runtime
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: '0.2'
96
+ version: '0.3'
97
97
  - - ">="
98
98
  - !ruby/object:Gem::Version
99
- version: 0.2.7
99
+ version: 0.3.1
100
100
  - !ruby/object:Gem::Dependency
101
101
  name: x4ss
102
102
  requirement: !ruby/object:Gem::Requirement
@@ -118,7 +118,7 @@ dependencies:
118
118
  - !ruby/object:Gem::Version
119
119
  version: '0.2'
120
120
  description:
121
- email: james@jamesrobertson.eu
121
+ email: digital.robertson@gmail.com
122
122
  executables: []
123
123
  extensions: []
124
124
  extra_rdoc_files: []
@@ -143,7 +143,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
143
143
  - !ruby/object:Gem::Version
144
144
  version: '0'
145
145
  requirements: []
146
- rubygems_version: 3.0.3
146
+ rubyforge_project:
147
+ rubygems_version: 2.7.10
147
148
  signing_key:
148
149
  specification_version: 4
149
150
  summary: Makes manipulating images from 1 line of code easier.
metadata.gz.sig CHANGED
Binary file