image_proc 2.0.0 → 2.1.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.
- data/History.txt +4 -0
- data/lib/image_proc.rb +29 -4
- data/test/test_image_proc.rb +5 -0
- metadata +4 -4
data/History.txt
CHANGED
data/lib/image_proc.rb
CHANGED
@@ -9,7 +9,7 @@ require 'open3'
|
|
9
9
|
# The whole idea is: a backend does not have to support cropping (we don't do it), it has only to be able to resize,
|
10
10
|
# and a backend should have 2 public methods. That's the game.
|
11
11
|
class ImageProc
|
12
|
-
VERSION = '2.
|
12
|
+
VERSION = '2.1.0'
|
13
13
|
|
14
14
|
class Error < RuntimeError; end
|
15
15
|
class MissingInput < Error; end
|
@@ -42,7 +42,7 @@ class ImageProc
|
|
42
42
|
|
43
43
|
# Tries to detect the best engine available
|
44
44
|
def detect_engine
|
45
|
-
if
|
45
|
+
if ImageProcConvert.available?
|
46
46
|
ImageProcConvert
|
47
47
|
elsif RUBY_PLATFORM =~ /darwin/i
|
48
48
|
ImageProcSips
|
@@ -267,13 +267,38 @@ end
|
|
267
267
|
|
268
268
|
ImageProc.keep_quiet do
|
269
269
|
class ImageProcConvert < ImageProc
|
270
|
+
class << self
|
271
|
+
attr_accessor :convert_bin
|
272
|
+
|
273
|
+
def available?
|
274
|
+
paths = %w( /usr/local/bin /opt/local/bin /usr/bin /bin)
|
275
|
+
begin
|
276
|
+
result_path = `which convert`.strip
|
277
|
+
return false unless result_path =~ /^\//
|
278
|
+
|
279
|
+
self.convert_bin = File.dirname(result_path)
|
280
|
+
return true
|
281
|
+
rescue Errno::ENOENT # Path might be not munged
|
282
|
+
paths.each do | p |
|
283
|
+
if File.exist?(File.join(p, 'convert'))
|
284
|
+
self.convert_bin = p
|
285
|
+
return true
|
286
|
+
end
|
287
|
+
end
|
288
|
+
end
|
289
|
+
|
290
|
+
return false #nope, not avaliable?
|
291
|
+
end
|
292
|
+
|
293
|
+
end
|
294
|
+
|
270
295
|
HARMLESS = [/unknown field with tag/]
|
271
296
|
def process_exact
|
272
|
-
wrap_stderr("convert -filter Gaussian -resize #{@target_w}x#{@target_h}! #{@source} #{@dest}")
|
297
|
+
wrap_stderr("#{self.class.convert_bin}/convert -filter Gaussian -resize #{@target_w}x#{@target_h}! #{@source} #{@dest}")
|
273
298
|
end
|
274
299
|
|
275
300
|
def get_bounds(of)
|
276
|
-
wrap_stderr("identify #{of}").scan(/(\d+)x(\d+)/)[0].map{|e| e.to_i }
|
301
|
+
wrap_stderr("#{self.class.convert_bin}/identify #{of}").scan(/(\d+)x(\d+)/)[0].map{|e| e.to_i }
|
277
302
|
end
|
278
303
|
end
|
279
304
|
end
|
data/test/test_image_proc.rb
CHANGED
@@ -100,10 +100,15 @@ if(`which convert`)
|
|
100
100
|
class TestImageProcConvert < Test::Unit::TestCase
|
101
101
|
def setup
|
102
102
|
super
|
103
|
+
ImageProcConvert.available?
|
103
104
|
@processor = ImageProcConvert.new
|
104
105
|
end
|
105
106
|
|
106
107
|
include ResizeTestHelper
|
108
|
+
|
109
|
+
def test_avail
|
110
|
+
assert ImageProcConvert.available?
|
111
|
+
end
|
107
112
|
end
|
108
113
|
end
|
109
114
|
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: image_proc
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 2.
|
5
|
+
version: 2.1.0
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Julik
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-07-
|
13
|
+
date: 2011-07-18 00:00:00 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: hoe
|
@@ -18,9 +18,9 @@ dependencies:
|
|
18
18
|
requirement: &id001 !ruby/object:Gem::Requirement
|
19
19
|
none: false
|
20
20
|
requirements:
|
21
|
-
- -
|
21
|
+
- - ~>
|
22
22
|
- !ruby/object:Gem::Version
|
23
|
-
version: 2.
|
23
|
+
version: "2.10"
|
24
24
|
type: :development
|
25
25
|
version_requirements: *id001
|
26
26
|
description: A no-frills image resizer, with pluggable backends. No extra software required on OS X
|