easyimg_utils 0.6.1 → 0.6.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,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