dimension 0.0.2 → 0.0.3
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 +7 -0
- data/.gitignore +1 -0
- data/README.md +10 -14
- data/benchmark.rb +5 -5
- data/bin/dimension +10 -4
- data/examples/sinatra.rb +2 -2
- data/lib/dimension/image.rb +14 -4
- data/lib/dimension/version.rb +1 -1
- data/lib/dimension.rb +4 -4
- metadata +22 -41
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: e101e16b7d5ceb6fb18b6d2e82bf856a66383daa
|
4
|
+
data.tar.gz: 14510358ffbdbd31f7bce572bf006019d921b763
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: f72131f1f58b51b054357ad5e11947f7828b9a04dd2f1c9183db84e134197c372bfce11c4fc816d27f4b89a211d4102a8cd47f12b1d27e20bbe87d5f3d641805
|
7
|
+
data.tar.gz: 518fb7db8cf2b3befbc595fe754c60b56a7e15916d200d7d76ab221f4b691c0b8624731174f92592d8fe285112b30652868f7520c767fc234b937f1366a2e705
|
data/.gitignore
CHANGED
data/README.md
CHANGED
@@ -1,12 +1,12 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
Resizer
|
2
|
+
=======
|
3
3
|
|
4
4
|
Fast, simplified image resizing for Ruby. No ImageMagick.
|
5
5
|
|
6
6
|
``` rb
|
7
|
-
require '
|
7
|
+
require 'resizer'
|
8
8
|
|
9
|
-
thumb =
|
9
|
+
thumb = Resizer.open('tux.png')
|
10
10
|
thumb.generate('100x100') # => { :width => 100, :height => 100 }
|
11
11
|
thumb.save('resized.png')
|
12
12
|
```
|
@@ -14,7 +14,7 @@ Fast, simplified image resizing for Ruby. No ImageMagick.
|
|
14
14
|
Or generate and write file automatically.
|
15
15
|
|
16
16
|
``` rb
|
17
|
-
thumb =
|
17
|
+
thumb = Resizer.new('tux.png')
|
18
18
|
thumb.generate!('100x300!') # will write file as 'tux-100x300.png'
|
19
19
|
```
|
20
20
|
|
@@ -23,7 +23,7 @@ Or generate and write file automatically.
|
|
23
23
|
Yes sir, we have it.
|
24
24
|
|
25
25
|
``` rb
|
26
|
-
thumb =
|
26
|
+
thumb = Resizer.open(params[:file])
|
27
27
|
thumb.generate('200x300#')
|
28
28
|
thumb.image_data
|
29
29
|
```
|
@@ -32,10 +32,11 @@ You can also pass a block, which will ensure the original image is closed after
|
|
32
32
|
|
33
33
|
``` rb
|
34
34
|
get '/resize/:file' do
|
35
|
-
thumb =
|
36
|
-
thumb.generate('200x300#') do
|
37
|
-
thumb.to_response
|
35
|
+
thumb = Resizer.open(params[:file])
|
36
|
+
thumb.generate('200x300#') do |res|
|
37
|
+
@out = thumb.to_response
|
38
38
|
end
|
39
|
+
@out.to_response
|
39
40
|
end
|
40
41
|
```
|
41
42
|
|
@@ -43,11 +44,6 @@ You can also pass a block, which will ensure the original image is closed after
|
|
43
44
|
|
44
45
|
This is taken directly from the excellent Dragonfly gem.
|
45
46
|
|
46
|
-
Author
|
47
|
-
======
|
48
|
-
|
49
|
-
Written by Tomás Pollak.
|
50
|
-
|
51
47
|
Copyright
|
52
48
|
=========
|
53
49
|
|
data/benchmark.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
require './lib/
|
1
|
+
require './lib/resizer'
|
2
2
|
require 'benchmark'
|
3
3
|
|
4
4
|
file = ARGV[0] or abort('File needed')
|
@@ -10,8 +10,8 @@ puts "Processing #{file}"
|
|
10
10
|
Benchmark.bm do |x|
|
11
11
|
|
12
12
|
x.report do
|
13
|
-
|
14
|
-
a =
|
13
|
+
Resizer.processor = 'imlib2'
|
14
|
+
a = Resizer.open(file)
|
15
15
|
res = a.generate!(geometry)
|
16
16
|
puts res.inspect
|
17
17
|
end
|
@@ -19,8 +19,8 @@ Benchmark.bm do |x|
|
|
19
19
|
sleep 1
|
20
20
|
|
21
21
|
x.report do
|
22
|
-
|
23
|
-
b =
|
22
|
+
Resizer.processor = 'image_magick'
|
23
|
+
b = Resizer.open(file)
|
24
24
|
res = b.generate!(geometry)
|
25
25
|
puts res.inspect
|
26
26
|
end
|
data/bin/dimension
CHANGED
@@ -3,9 +3,15 @@
|
|
3
3
|
require './lib/dimension'
|
4
4
|
require 'benchmark'
|
5
5
|
|
6
|
-
|
7
|
-
|
6
|
+
def usage
|
7
|
+
puts 'Usage: dimension [file] [geometry] [output file/path]'
|
8
|
+
puts 'Example: dimension example/assets/chair.jpg 100x100 /tmp'
|
9
|
+
abort
|
10
|
+
end
|
11
|
+
|
12
|
+
file = ARGV[0] # or abort('File needed. Try with examples/assets/chair.jpg')
|
13
|
+
geometry = ARGV[1] or usage
|
14
|
+
output = ARGV[2]
|
8
15
|
|
9
16
|
thumb = Dimension.open(file)
|
10
|
-
res = thumb.generate!(geometry)
|
11
|
-
# puts res.inspect
|
17
|
+
res = thumb.generate!(geometry, output)
|
data/examples/sinatra.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
ROOT = File.expand_path(File.dirname(__FILE__))
|
2
2
|
|
3
3
|
require 'sinatra'
|
4
|
-
require ROOT + '/../lib/
|
4
|
+
require ROOT + '/../lib/resizer'
|
5
5
|
|
6
6
|
get '/' do
|
7
7
|
images = Dir.glob(File.join(ROOT, 'assets') + '/*')
|
@@ -21,7 +21,7 @@ get '/images/:file' do
|
|
21
21
|
end
|
22
22
|
|
23
23
|
begin
|
24
|
-
thumb =
|
24
|
+
thumb = Resizer.open(file)
|
25
25
|
rescue => e
|
26
26
|
return e.message
|
27
27
|
end
|
data/lib/dimension/image.rb
CHANGED
@@ -29,6 +29,9 @@ class Image
|
|
29
29
|
end
|
30
30
|
|
31
31
|
@file = File.expand_path(file)
|
32
|
+
@name = File.basename(file)
|
33
|
+
@path = File.dirname(@file)
|
34
|
+
|
32
35
|
raise ArgumentError, "File not found: #{@file}" unless File.exist?(@file)
|
33
36
|
log "File loaded: #{file}. Geometry: #{geometry.join('x')}"
|
34
37
|
end
|
@@ -61,7 +64,7 @@ class Image
|
|
61
64
|
else
|
62
65
|
raise ArgumentError, "Didn't recognise the geometry string #{geometry}"
|
63
66
|
end
|
64
|
-
|
67
|
+
|
65
68
|
new_geometry = get_new_geometry
|
66
69
|
{:width => new_geometry[0], :height => new_geometry[1]}
|
67
70
|
end
|
@@ -69,8 +72,15 @@ class Image
|
|
69
72
|
def save(out_file)
|
70
73
|
new_geometry = get_new_geometry
|
71
74
|
|
75
|
+
path = @path
|
76
|
+
|
77
|
+
if out_file and File.directory?(out_file)
|
78
|
+
path = File.expand_path(out_file)
|
79
|
+
out_file = nil
|
80
|
+
end
|
81
|
+
|
72
82
|
if out_file.nil?
|
73
|
-
out_file =
|
83
|
+
out_file = File.join(path, @name.sub(File.extname(file), '-' + new_geometry.join('x') + File.extname(file)))
|
74
84
|
end
|
75
85
|
|
76
86
|
log "Writing file: #{out_file}"
|
@@ -83,11 +93,11 @@ class Image
|
|
83
93
|
def to_s
|
84
94
|
image_data
|
85
95
|
end
|
86
|
-
|
96
|
+
|
87
97
|
def to_a
|
88
98
|
to_response
|
89
99
|
end
|
90
|
-
|
100
|
+
|
91
101
|
def inspect
|
92
102
|
geometry = get_new_geometry
|
93
103
|
"#<Dimension::Image:#{object_id} @width=#{geometry[0]}, @height=#{geometry[1]}>"
|
data/lib/dimension/version.rb
CHANGED
data/lib/dimension.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
|
-
|
2
|
-
require 'dimension/image'
|
1
|
+
require File.expand_path(File.dirname(__FILE__)) + '/dimension/image'
|
2
|
+
# require 'dimension/image'
|
3
3
|
|
4
4
|
module Dimension
|
5
5
|
|
@@ -20,11 +20,11 @@ module Dimension
|
|
20
20
|
require_relative "dimension/processors/#{name}"
|
21
21
|
Image.include(Kernel.const_get(@processor))
|
22
22
|
end
|
23
|
-
|
23
|
+
|
24
24
|
def self.open(file)
|
25
25
|
Image.new(file)
|
26
26
|
end
|
27
|
-
|
27
|
+
|
28
28
|
end
|
29
29
|
|
30
30
|
begin
|
metadata
CHANGED
@@ -1,34 +1,24 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: dimension
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
segments:
|
6
|
-
- 0
|
7
|
-
- 0
|
8
|
-
- 2
|
9
|
-
version: 0.0.2
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.3
|
10
5
|
platform: ruby
|
11
|
-
authors:
|
12
|
-
-
|
6
|
+
authors:
|
7
|
+
- Tomás Pollak
|
13
8
|
autorequire:
|
14
9
|
bindir: bin
|
15
10
|
cert_chain: []
|
16
|
-
|
17
|
-
date: 2014-04-04 00:00:00 -07:00
|
18
|
-
default_executable:
|
11
|
+
date: 2014-04-09 00:00:00.000000000 Z
|
19
12
|
dependencies: []
|
20
|
-
|
21
13
|
description: Yes, there are other graphic libraries besides ImageMagick.
|
22
|
-
email:
|
14
|
+
email:
|
23
15
|
- tomas@forkhq.com
|
24
|
-
executables:
|
16
|
+
executables:
|
25
17
|
- dimension
|
26
18
|
extensions: []
|
27
|
-
|
28
19
|
extra_rdoc_files: []
|
29
|
-
|
30
|
-
|
31
|
-
- .gitignore
|
20
|
+
files:
|
21
|
+
- ".gitignore"
|
32
22
|
- README.md
|
33
23
|
- Rakefile
|
34
24
|
- benchmark.rb
|
@@ -44,37 +34,28 @@ files:
|
|
44
34
|
- lib/dimension/processors/image_magick.rb
|
45
35
|
- lib/dimension/processors/imlib2.rb
|
46
36
|
- lib/dimension/version.rb
|
47
|
-
has_rdoc: true
|
48
37
|
homepage: https://github.com/tomas/dimension
|
49
38
|
licenses: []
|
50
|
-
|
39
|
+
metadata: {}
|
51
40
|
post_install_message:
|
52
41
|
rdoc_options: []
|
53
|
-
|
54
|
-
require_paths:
|
42
|
+
require_paths:
|
55
43
|
- lib
|
56
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
57
|
-
requirements:
|
44
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
45
|
+
requirements:
|
58
46
|
- - ">="
|
59
|
-
- !ruby/object:Gem::Version
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
64
|
-
requirements:
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: '0'
|
49
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
50
|
+
requirements:
|
65
51
|
- - ">="
|
66
|
-
- !ruby/object:Gem::Version
|
67
|
-
segments:
|
68
|
-
- 1
|
69
|
-
- 3
|
70
|
-
- 6
|
52
|
+
- !ruby/object:Gem::Version
|
71
53
|
version: 1.3.6
|
72
54
|
requirements: []
|
73
|
-
|
74
55
|
rubyforge_project: dimension
|
75
|
-
rubygems_version:
|
56
|
+
rubygems_version: 2.2.0
|
76
57
|
signing_key:
|
77
|
-
specification_version:
|
58
|
+
specification_version: 4
|
78
59
|
summary: Native, in-process image resizing in Ruby.
|
79
60
|
test_files: []
|
80
|
-
|
61
|
+
has_rdoc:
|