easyimg_utils 0.3.0 → 0.4.0

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: 9e40cc156b9ae80cfc9ec4f1db9f44b886a73e9364924d88bc3cc73d6344d9b2
4
- data.tar.gz: e7bcb81e66135174816218d2729b05d140eec50dc9b94e4e4d6a509578b69a72
3
+ metadata.gz: 963ee21d36cbeebb33c72de68a6a49d0af25f0ed1506de4d6fc15988869b56e4
4
+ data.tar.gz: 951d7659262c844841fb4ee948e80feef8a542fac1e92716dad25c91f821a545
5
5
  SHA512:
6
- metadata.gz: d77d64f6b55259700029284542eb2b5e308b1fb25086acf30be8829e6872745fc35b60b8103abf69dadcfcdc193246810095b600c348ad91d77bfbdd6b72642e
7
- data.tar.gz: 259a7364e0283cc6ebfb21a12bdbc3037a63e7deae9894390e589d2bfe5150973b585e5bff5717c652a0b0dda2963a3d7c964233e5de640e1d094127ced4d65c
6
+ metadata.gz: c8a24e17f9fa176174c0aee4f8b235dd95e3f07967f07db7ffc2fc004800109cf0d52be8433f10c1772011d982be1adb747c28c022686d6d61570bd1e55151e5
7
+ data.tar.gz: 5aae87c99e9d38b3861af3c5e6f4935ba3e2b572afa810336be91b6966fa252912725fee42e7328b705bdb2f6adfd0048520f9c4d0e0911f872c3b1ea336ef86
Binary file
data.tar.gz.sig CHANGED
Binary file
@@ -5,6 +5,7 @@
5
5
  require 'c32'
6
6
  require 'rxfhelper'
7
7
  require 'rmagick'
8
+ require 'webp_ffi'
8
9
 
9
10
  # requirements:
10
11
  #
@@ -13,6 +14,10 @@ require 'rmagick'
13
14
  #
14
15
  # viewer:
15
16
  # apt-get install feh
17
+ #
18
+ # webp-ffi dependencies
19
+ # apt-get install libjpeg-dev libpng-dev libtiff-dev libwebp-dev
20
+ #
16
21
 
17
22
 
18
23
 
@@ -46,15 +51,21 @@ class EasyImgUtils
46
51
  * add_svg # adds an SVG transparency overlay. usage: add_svg('/tmp/image1.svg')
47
52
  * add_text # e.g. add_text('some text')
48
53
  * blur # e.g. blur(x: 231, y: 123, w: 85, h: 85)
54
+ * capture_screen # takes a screenshot of the desktop
49
55
  * center_crop # crops from the centre of an image. Usage center_crop(width, height)
50
56
  * composite # overlay a smaller image on top of an image
51
57
  * contrast # changes the intensity between lighter and darker elements
58
+ * convert # convert from 1 img format to another
52
59
  * crop # e.g. crop(x: 231, y: 123, w: 85, h: 85)
53
60
  * fax_effect # Produces a high-contrast, two colour image
54
61
  * greyscale # Reduces the image to 256 shades of grey
55
62
  * info # returns the dimension of the image in a Hash object
56
63
  * make_thumbnail # similar to resize but faster for sizes less than 10% of original image
57
64
  * resize # set the maximum geomertry of the image for resizing e.g. resize('320x240')
65
+ * rotate
66
+ * rotate_180
67
+ * rotate_left
68
+ * rotate_right
58
69
  * sketch # renders an artistic sketch, ideal with simplistic photos
59
70
  * view # view the output
60
71
  * vignette # Feathers the edge of an image in a circular path
@@ -62,9 +73,10 @@ class EasyImgUtils
62
73
 
63
74
 
64
75
  def initialize(img_in=nil, img_out=nil, out: img_out,
65
- working_dir: '/tmp')
76
+ working_dir: '/tmp', debug: false)
66
77
 
67
78
  @file_in, @file_out, @working_dir = img_in, out, working_dir
79
+ @debug = debug
68
80
 
69
81
  end
70
82
 
@@ -126,6 +138,24 @@ class EasyImgUtils
126
138
  write img, quality
127
139
 
128
140
  end
141
+
142
+ def brightness(quality: nil)
143
+ img = read()
144
+ img2 = imglevel(-Magick::QuantumRange * 0.25, Magick::QuantumRange * 1.25, 1.0)
145
+ write img2, quality
146
+ end
147
+
148
+ def capture_screen(quality: nil)
149
+
150
+ # defaults (silent=false, frame=false, descend=false,
151
+ # screen=false, borders=false)
152
+
153
+ img = Magick::Image.capture(true, false, false, true, true) {
154
+ self.filename = "root"
155
+ }
156
+ write img, quality
157
+
158
+ end
129
159
 
130
160
  def center_crop(w=0, h=0, width: w, height: h, quality: nil)
131
161
 
@@ -156,6 +186,9 @@ class EasyImgUtils
156
186
 
157
187
  end
158
188
 
189
+ alias overlay composite
190
+ alias add_img composite
191
+
159
192
  # contrast level
160
193
  # 1 low -> 10 high
161
194
  #
@@ -175,6 +208,33 @@ class EasyImgUtils
175
208
 
176
209
  end
177
210
 
211
+ def convert(quality: nil)
212
+
213
+ if File.extname(@file_in) == '.webp' then
214
+
215
+ # output_format options: pam, ppm, pgm, bmp, tiff or yuv
216
+ ext = File.extname(@file_out)[1..-1].to_sym
217
+ puts 'ext: ' + ext.inspect if @debug
218
+
219
+ if ext == :jpg then
220
+
221
+ file_out = @file_out.sub(/\.jpg$/,'.png')
222
+ WebP.decode(@file_in, file_out, output_format: :png)
223
+ img = read(file_out)
224
+ write img, quality
225
+
226
+ else
227
+
228
+ WebP.decode(@file_in, @file_out, output_format: ext)
229
+ end
230
+
231
+ else
232
+ img = read()
233
+ write img, quality
234
+ end
235
+
236
+ end
237
+
178
238
  def crop(x: 0, y: 0, w: nil, h: nil, quality: nil)
179
239
 
180
240
  return unless w
@@ -225,6 +285,8 @@ class EasyImgUtils
225
285
  write img2, quality
226
286
 
227
287
  end
288
+
289
+ alias thumbnail make_thumbnail
228
290
 
229
291
  # defines the maximum size of an image while maintaining aspect ratio
230
292
  #
@@ -240,6 +302,39 @@ class EasyImgUtils
240
302
 
241
303
  end
242
304
 
305
+ def rotate(degrees)
306
+
307
+ img = read()
308
+ img2 = img.rotate(degrees.to_i)
309
+ write img2, quality
310
+
311
+ end
312
+
313
+ def rotate_180()
314
+
315
+ img = read()
316
+ img2 = img.rotate(180)
317
+ write img2, quality
318
+
319
+ end
320
+
321
+ def rotate_left()
322
+
323
+ img = read()
324
+ img2 = img.rotate(-45)
325
+ write img2, quality
326
+
327
+ end
328
+
329
+ def rotate_right()
330
+
331
+ img = read()
332
+ img2 = img.rotate(45)
333
+ write img2, quality
334
+
335
+ end
336
+
337
+
243
338
  def sketch(quality: nil)
244
339
 
245
340
  img = read()
@@ -256,6 +351,8 @@ class EasyImgUtils
256
351
  write img, quality
257
352
 
258
353
  end
354
+
355
+ alias drawing sketch
259
356
 
260
357
  def view(show: true)
261
358
 
@@ -273,11 +370,13 @@ class EasyImgUtils
273
370
  write img2, quality
274
371
 
275
372
  end
373
+
374
+ alias feathered_around vignette
276
375
 
277
376
  private
278
377
 
279
- def read()
280
- data, type = RXFHelper.read(@file_in)
378
+ def read(file=@file_in)
379
+ data, type = RXFHelper.read(file)
281
380
  Magick::Image.from_blob(data).first
282
381
  end
283
382
 
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.3.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Robertson
@@ -35,7 +35,7 @@ cert_chain:
35
35
  6PB/a3YCkvA1ipebq/pmmvF9VopoG5giimE7Rkw0QPUi/w6724YH6tVQj077N2mP
36
36
  WOpXPMFUK6eXTvN8BbxLtUkt
37
37
  -----END CERTIFICATE-----
38
- date: 2019-05-07 00:00:00.000000000 Z
38
+ date: 2019-07-28 00:00:00.000000000 Z
39
39
  dependencies:
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: rmagick
@@ -43,20 +43,20 @@ dependencies:
43
43
  requirements:
44
44
  - - ">="
45
45
  - !ruby/object:Gem::Version
46
- version: 3.1.0
46
+ version: 4.0.0
47
47
  - - "~>"
48
48
  - !ruby/object:Gem::Version
49
- version: '3.1'
49
+ version: '4.0'
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: 3.1.0
56
+ version: 4.0.0
57
57
  - - "~>"
58
58
  - !ruby/object:Gem::Version
59
- version: '3.1'
59
+ version: '4.0'
60
60
  - !ruby/object:Gem::Dependency
61
61
  name: rxfhelper
62
62
  requirement: !ruby/object:Gem::Requirement
@@ -77,6 +77,26 @@ dependencies:
77
77
  - - ">="
78
78
  - !ruby/object:Gem::Version
79
79
  version: 0.9.4
80
+ - !ruby/object:Gem::Dependency
81
+ name: webp-ffi
82
+ requirement: !ruby/object:Gem::Requirement
83
+ requirements:
84
+ - - "~>"
85
+ - !ruby/object:Gem::Version
86
+ version: '0.2'
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: 0.2.7
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '0.2'
97
+ - - ">="
98
+ - !ruby/object:Gem::Version
99
+ version: 0.2.7
80
100
  description:
81
101
  email: james@jamesrobertson.eu
82
102
  executables: []
metadata.gz.sig CHANGED
Binary file