easyimg_utils 0.5.0 → 0.6.4

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: 4b3711353eefc74eef13ab152c8ca9755c100704838c4173ea93456aca64eb77
4
- data.tar.gz: 368e6035463fd8d9caf41d0f30bfcac5c3bd5f5efff8e2f496c8d8aeb1dbe19a
3
+ metadata.gz: e12a8d7ad03689334172c8068730efef5acd22474b4f3b3a0d0f73994fa6f0c3
4
+ data.tar.gz: a2e24819dc0efd620fa16797286034f0cce333d1ef360eb6bb2e6a4b106ca36e
5
5
  SHA512:
6
- metadata.gz: b091344cc47cac8248f0ce408fb43392573ff40da3e068983a81af69a347eec9aba772805bed440c807db5333e2c39982dbc6ddcda70bf13577fb9a41548725b
7
- data.tar.gz: ac8b138321d6849852f2f096fba9bda524f768c2d7d1f979117b66e99b42929255d06a225cef8e0ebc49226002136ebaa9e0062d492f2d5928ba0c33eec7eea2
6
+ metadata.gz: 2d5acd5bfef69e8cec1dc304f92e440070be9412d189fee2ce6d6c2b884593d9776b1bf04978dd572d62aea372fc0f636c6bf68c5dfd5338dcafbb9742647620
7
+ data.tar.gz: 4ea3afa5a48559a84d38e7806cf7ab27b3827ffcd1f6d2ef9cfbe0240f0d06e71987e9b2ef9316a2b510f8584ad605c67aa0512e41bd973c745d9c82ede407b1
checksums.yaml.gz.sig CHANGED
Binary file
data.tar.gz.sig CHANGED
Binary file
data/lib/easyimg_utils.rb CHANGED
@@ -3,9 +3,10 @@
3
3
  # file: easyimg_utils.rb
4
4
 
5
5
  require 'c32'
6
- require 'rxfhelper'
6
+ require 'x4ss'
7
7
  require 'rmagick'
8
8
  require 'webp_ffi'
9
+ require 'rxfhelper'
9
10
 
10
11
  # requirements:
11
12
  #
@@ -46,6 +47,7 @@ class EasyImgUtils
46
47
  extend CommandHelper
47
48
  include Magick
48
49
  include RXFHelperModule
50
+
49
51
 
50
52
  @commands = "
51
53
  * add rectangle # usage: add_rectangle(color: 'green', x1: 12, y1: 12, x2: 24, y2: 24)
@@ -54,6 +56,7 @@ class EasyImgUtils
54
56
  * animate Creates an animated gif e.g. animate('/tmp/a%d.png', '/tmp/b.gif')
55
57
  * blur # e.g. blur(x: 231, y: 123, w: 85, h: 85)
56
58
  * capture_screen # takes a screenshot of the desktop
59
+ * calc_resize # e.g. calc_resize '640x480' #=> 640x491
57
60
  * center_crop # crops from the centre of an image. Usage center_crop(width, height)
58
61
  * composite # overlay a smaller image on top of an image
59
62
  * contrast # changes the intensity between lighter and darker elements
@@ -69,6 +72,7 @@ class EasyImgUtils
69
72
  * rotate_left
70
73
  * rotate_right
71
74
  * scale # Scales an image by the given factor e.g. 0.75 is 75%. see also resize
75
+ * screencast # records a screencast and saves it as animated gif. e.g. (out: '/tmp/fun.gif').screencast
72
76
  * sketch # renders an artistic sketch, ideal with simplistic photos
73
77
  * view # view the output
74
78
  * vignette # Feathers the edge of an image in a circular path
@@ -83,6 +87,20 @@ class EasyImgUtils
83
87
 
84
88
  end
85
89
 
90
+ # e.g. calc_resize '1449x1932', '640x480' #=> 480x640
91
+ #
92
+ def self.calc_resize(s, s2)
93
+
94
+ a = s.split('x',2).map(&:to_i)
95
+ a2 = s2.split('x',2).map(&:to_i)
96
+ i = a.index a.max
97
+
98
+ factor = a2[i] / a[i].to_f
99
+
100
+ s3 = a.map {|x| (x * factor).round}.join('x')
101
+
102
+ end
103
+
86
104
  def add_rectangle(a=[], quality: nil, color: 'green', stroke_width: 5,
87
105
  x1: 0, y1: 0, x2: 0, y2: 0)
88
106
 
@@ -167,6 +185,12 @@ class EasyImgUtils
167
185
  end
168
186
  end
169
187
 
188
+ # calculates the new geometry after a resize
189
+ #
190
+ def calc_resize(geometry)
191
+ EasyImgUtils.calc_resize(info()[:geometry], geometry)
192
+ end
193
+
170
194
  def capture_screen(quality: nil)
171
195
 
172
196
  # defaults (silent=false, frame=false, descend=false,
@@ -380,8 +404,25 @@ class EasyImgUtils
380
404
  end
381
405
 
382
406
  end
407
+
408
+ # Takes a screenshot every second to create an animated gif
409
+ #
410
+ def screencast(duration: 6, scale: 1, window: true)
383
411
 
412
+ fileout = @file_out.sub(/\.\w+$/,'%d.png')
384
413
 
414
+ puts 'fileout: ' + fileout if @debug
415
+
416
+ x4ss = X4ss.new fileout, mouse: true, window: true
417
+ mode = window ? :window : :screen
418
+ sleep 2; x4ss.record duration: duration, mode: mode
419
+ x4ss.save
420
+
421
+ fileout2 = fileout.sub(/(?=%)/,'b')
422
+ EasyImgUtils.new(fileout, fileout2).scale(scale) unless scale == 1
423
+ EasyImgUtils.new(fileout2, @file_out).animate
424
+
425
+ end
385
426
 
386
427
  def sketch(quality: nil)
387
428
 
@@ -435,7 +476,7 @@ class EasyImgUtils
435
476
  globfilepath = file.sub('%d','*')
436
477
 
437
478
  a = Dir[globfilepath]
438
-
479
+ puts 'a: ' + a.inspect if @debug
439
480
  a.sort_by {|x| Regexp.new(regfilepath).match(x).captures[0].to_i }
440
481
 
441
482
  else
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.5.0
4
+ version: 0.6.4
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-12 00:00:00.000000000 Z
38
+ date: 2021-03-20 00:00:00.000000000 Z
39
39
  dependencies:
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: rmagick
@@ -43,62 +43,82 @@ 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
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '0.3'
97
+ - - ">="
98
+ - !ruby/object:Gem::Version
99
+ version: 0.3.1
100
+ - !ruby/object:Gem::Dependency
101
+ name: x4ss
102
+ requirement: !ruby/object:Gem::Requirement
103
+ requirements:
104
+ - - ">="
105
+ - !ruby/object:Gem::Version
106
+ version: 0.2.0
94
107
  - - "~>"
95
108
  - !ruby/object:Gem::Version
96
109
  version: '0.2'
110
+ type: :runtime
111
+ prerelease: false
112
+ version_requirements: !ruby/object:Gem::Requirement
113
+ requirements:
97
114
  - - ">="
98
115
  - !ruby/object:Gem::Version
99
- version: 0.2.7
116
+ version: 0.2.0
117
+ - - "~>"
118
+ - !ruby/object:Gem::Version
119
+ version: '0.2'
100
120
  description:
101
- email: james@jamesrobertson.eu
121
+ email: digital.robertson@gmail.com
102
122
  executables: []
103
123
  extensions: []
104
124
  extra_rdoc_files: []
@@ -123,7 +143,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
123
143
  - !ruby/object:Gem::Version
124
144
  version: '0'
125
145
  requirements: []
126
- rubygems_version: 3.0.3
146
+ rubyforge_project:
147
+ rubygems_version: 2.7.10
127
148
  signing_key:
128
149
  specification_version: 4
129
150
  summary: Makes manipulating images from 1 line of code easier.
metadata.gz.sig CHANGED
Binary file