exif 0.11.2 → 1.0.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 +4 -4
- data/README.md +30 -16
- data/benchmark/benchmark.rb +9 -5
- data/lib/exif/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d039e9781e3484977eaa1f57d34d5fdeb3c7422a
|
4
|
+
data.tar.gz: 36d459ec69a08973f845931d827bf690dd494ae0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6b5c9f0d2a64c4d345512dd50476d32231be8fa1cb4aaed0e7f9c350b26f0c4c1d38a2ad172f25644243cb4ae59e6051aa31b1f0b682e983722456afe8343eae
|
7
|
+
data.tar.gz: 0da8b96a388e365dfeee2d9d0bca6cd24f761a3018a6d91299b957f6831281c1acaa367df87570821f815709fdab0ac3ec7dc31f29578d61b1928b6924e1347e
|
data/README.md
CHANGED
@@ -4,7 +4,10 @@ Ruby EXIF reader written in C extension.
|
|
4
4
|
|
5
5
|
$ gem install exif
|
6
6
|
|
7
|
-
Please make sure you have installed `libexif` first
|
7
|
+
Please make sure you have installed `libexif` first:
|
8
|
+
|
9
|
+
$ brew install libexif # Homebrew
|
10
|
+
$ sudo apt-get install libexif-dev # APT
|
8
11
|
|
9
12
|
# Usage
|
10
13
|
|
@@ -26,19 +29,28 @@ data.to_h # => {0 => {...}, 1 => {...}, :exif => {...}}
|
|
26
29
|
|
27
30
|
# How fast?
|
28
31
|
|
29
|
-
There
|
32
|
+
There are some other excellent works called [exifr](https://github.com/remvee/exifr) by [@remvee](https://github.com/remvee), and [mini_exiftool](https://github.com/janfri/mini_exiftool) by [@janfri](https://github.com/janfri). They're built in pure Ruby while this one is C extension.
|
33
|
+
|
34
|
+
If you program JRuby, you may want to choose exifr or mini_exiftool, the latter lets you get the full power of [Exiftool](http://www.sno.phy.queensu.ca/~phil/exiftool/) written by Phil Harvey since it's a command-line wrapper, otherwise you can try this gem for speed purpose. **It's about 8 times faster than exifr and 1200 times than that of mini_exiftool.**
|
35
|
+
|
36
|
+
A small benchmark shows below:
|
30
37
|
|
31
38
|
```ruby
|
32
39
|
require 'benchmark'
|
33
|
-
require '
|
40
|
+
require 'mini_exiftool'
|
34
41
|
require 'exifr'
|
35
|
-
|
36
|
-
|
42
|
+
require 'exif'
|
43
|
+
|
44
|
+
N = 50
|
45
|
+
FILE_PATH = File.expand_path('../../spec/sample.jpg', __FILE__)
|
37
46
|
Benchmark.bmbm do |x|
|
38
|
-
x.report '
|
47
|
+
x.report 'mini_exiftool' do
|
48
|
+
N.times{ MiniExiftool.new(FILE_PATH).image_width }
|
49
|
+
end
|
50
|
+
x.report 'exifr' do
|
39
51
|
N.times{ EXIFR::JPEG.new(FILE_PATH).width }
|
40
52
|
end
|
41
|
-
x.report '
|
53
|
+
x.report 'exif' do
|
42
54
|
N.times{ Exif::Data.new(FILE_PATH).image_width }
|
43
55
|
end
|
44
56
|
end
|
@@ -46,14 +58,15 @@ end
|
|
46
58
|
|
47
59
|
```
|
48
60
|
$ ruby benchmark/benchmark.rb
|
49
|
-
Rehearsal
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
61
|
+
Rehearsal -------------------------------------------------
|
62
|
+
mini_exiftool 0.150000 0.050000 12.390000 ( 12.546417)
|
63
|
+
exifr 0.090000 0.000000 0.090000 ( 0.091090)
|
64
|
+
exif 0.010000 0.000000 0.010000 ( 0.010343)
|
65
|
+
--------------------------------------- total: 12.490000sec
|
66
|
+
user system total real
|
67
|
+
mini_exiftool 0.150000 0.050000 12.400000 ( 12.540122)
|
68
|
+
exifr 0.080000 0.000000 0.080000 ( 0.083251)
|
69
|
+
exif 0.010000 0.000000 0.010000 ( 0.009855)
|
57
70
|
```
|
58
71
|
|
59
72
|
## Tag Rreference
|
@@ -209,4 +222,5 @@ Rehearsal ------------------------------------------------
|
|
209
222
|
|
210
223
|
# TODO
|
211
224
|
|
212
|
-
1. Support reading from String.
|
225
|
+
1. Support reading from String.
|
226
|
+
2. Create, update and delete tags.
|
data/benchmark/benchmark.rb
CHANGED
@@ -1,15 +1,19 @@
|
|
1
1
|
$: << File.expand_path('../../lib', __FILE__)
|
2
2
|
require 'benchmark'
|
3
|
-
require '
|
3
|
+
require 'mini_exiftool'
|
4
4
|
require 'exifr'
|
5
|
+
require 'exif'
|
5
6
|
|
6
|
-
N =
|
7
|
+
N = 50
|
7
8
|
FILE_PATH = File.expand_path('../../spec/sample.jpg', __FILE__)
|
8
9
|
Benchmark.bmbm do |x|
|
9
|
-
x.report '
|
10
|
+
x.report 'mini_exiftool' do
|
11
|
+
N.times{ MiniExiftool.new(FILE_PATH).image_width }
|
12
|
+
end
|
13
|
+
x.report 'exifr' do
|
10
14
|
N.times{ EXIFR::JPEG.new(FILE_PATH).width }
|
11
15
|
end
|
12
|
-
x.report '
|
16
|
+
x.report 'exif' do
|
13
17
|
N.times{ Exif::Data.new(FILE_PATH).image_width }
|
14
18
|
end
|
15
|
-
end
|
19
|
+
end
|
data/lib/exif/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: exif
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jian Weihang
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-11-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|