exifr 1.0.3 → 1.0.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.
- data/CHANGELOG +4 -0
- data/README.rdoc +1 -1
- data/Rakefile +1 -1
- data/lib/exifr.rb +9 -4
- data/lib/{jpeg.rb → exifr/jpeg.rb} +7 -4
- data/lib/{tiff.rb → exifr/tiff.rb} +2 -1
- data/tests/jpeg_test.rb +1 -1
- data/tests/test_helper.rb +1 -1
- data/tests/tiff_test.rb +1 -1
- metadata +6 -7
- data/lib/exceptions.rb +0 -5
data/CHANGELOG
CHANGED
data/README.rdoc
CHANGED
data/Rakefile
CHANGED
data/lib/exifr.rb
CHANGED
@@ -1,5 +1,10 @@
|
|
1
|
-
# Copyright (c) 2006, 2007, 2008, 2009, 2010 - R.W. van 't Veer
|
1
|
+
# Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011 - R.W. van 't Veer
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
3
|
+
module EXIFR
|
4
|
+
class MalformedImage < StandardError; end
|
5
|
+
class MalformedJPEG < MalformedImage; end
|
6
|
+
class MalformedTIFF < MalformedImage; end
|
7
|
+
end
|
8
|
+
|
9
|
+
require 'exifr/jpeg'
|
10
|
+
require 'exifr/tiff'
|
@@ -1,5 +1,6 @@
|
|
1
|
-
# Copyright (c) 2006, 2007, 2008, 2009, 2010 - R.W. van 't Veer
|
1
|
+
# Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011 - R.W. van 't Veer
|
2
2
|
|
3
|
+
require 'exifr'
|
3
4
|
require 'stringio'
|
4
5
|
|
5
6
|
module EXIFR
|
@@ -22,6 +23,8 @@ module EXIFR
|
|
22
23
|
attr_reader :exif
|
23
24
|
# raw EXIF data
|
24
25
|
attr_reader :exif_data # :nodoc:
|
26
|
+
# raw APP1 frames
|
27
|
+
attr_reader :app1s
|
25
28
|
|
26
29
|
# +file+ is a filename or an IO object. Hint: use StringIO when working with slurped data like blobs.
|
27
30
|
def initialize(file)
|
@@ -90,7 +93,7 @@ module EXIFR
|
|
90
93
|
raise MalformedJPEG, "no start of image marker found"
|
91
94
|
end
|
92
95
|
|
93
|
-
app1s = []
|
96
|
+
@app1s = []
|
94
97
|
while marker = io.next
|
95
98
|
case marker
|
96
99
|
when 0xC0..0xC3, 0xC5..0xC7, 0xC9..0xCB, 0xCD..0xCF # SOF markers
|
@@ -100,14 +103,14 @@ module EXIFR
|
|
100
103
|
end
|
101
104
|
when 0xD9, 0xDA; break # EOI, SOS
|
102
105
|
when 0xFE; (@comment ||= []) << io.readframe # COM
|
103
|
-
when 0xE1; app1s << io.readframe # APP1, may contain EXIF tag
|
106
|
+
when 0xE1; @app1s << io.readframe # APP1, may contain EXIF tag
|
104
107
|
else io.readframe # ignore frame
|
105
108
|
end
|
106
109
|
end
|
107
110
|
|
108
111
|
@comment = @comment.first if @comment && @comment.size == 1
|
109
112
|
|
110
|
-
if app1 = app1s.find { |d| d[0..5] == "Exif\0\0" }
|
113
|
+
if app1 = @app1s.find { |d| d[0..5] == "Exif\0\0" }
|
111
114
|
@exif_data = app1[6..-1]
|
112
115
|
@exif = TIFF.new(StringIO.new(@exif_data))
|
113
116
|
end
|
data/tests/jpeg_test.rb
CHANGED
data/tests/test_helper.rb
CHANGED
data/tests/tiff_test.rb
CHANGED
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: exifr
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 31
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 1
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 1.0.
|
9
|
+
- 4
|
10
|
+
version: 1.0.4
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- R.W. van 't Veer
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date:
|
18
|
+
date: 2011-02-23 00:00:00 +01:00
|
19
19
|
default_executable:
|
20
20
|
dependencies: []
|
21
21
|
|
@@ -32,9 +32,8 @@ files:
|
|
32
32
|
- Rakefile
|
33
33
|
- bin/exifr
|
34
34
|
- lib/exifr.rb
|
35
|
-
- lib/jpeg.rb
|
36
|
-
- lib/tiff.rb
|
37
|
-
- lib/exceptions.rb
|
35
|
+
- lib/exifr/jpeg.rb
|
36
|
+
- lib/exifr/tiff.rb
|
38
37
|
- tests/data/1x1.jpg
|
39
38
|
- tests/data/apple-aperture-1.5.exif
|
40
39
|
- tests/data/canon-g3.exif
|