Subversion Repositories general

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
1268 dev 1
v2.3.1 - 25 Feb 2006
2
-------------------------------
3
  - Fixed copy-and-paste errors in ExifDescriptor.java.  Thanks to Ferret Renaud.
4
 
5
v2.3.0 - 12 Jan 2006
6
-------------------------------
7
  - New tags from Exif 2.2 specification (A401-A420).
8
  - Fixed stack overflow exception in ExifReader for cyclic directory references.
9
    Thanks to John Sidney-Woollett for reporting this bug (reported for Fuji FinePix A101 and Canon 20D).
10
  - Fixed rounding error in the shutter speed description which was giving the wrong value most of the
11
    time (for example, 1/32 instead of 1/50).
12
    Thanks for Gli Blr and Mark Edwards for pointing out this error.
13
  - Fix thread safety bug in ExifReader.
14
  - Fixed OutOfMemoryError seen in certain Canon 20D images.  
15
    Thanks to Henry Yeung for providing an image to reproduce this error.
16
  - Support for Windows XP Exif tags (Author, title, comments, etc).
17
  - Added more documentation, and removed commented/unused code.
18
  - Enhanced descriptor support for Exif tags.
19
  - Extract comments in non-ASCII encodings.
20
  - Improved camera model MakerNote support:
21
    - New models:
22
      - Epson (thanks to David Carlson for pointing me in the right direction with this)
23
      - Kyocera / Contax (very limited)
24
      - Minolta (it utilises the Olympus format)
25
      - Panasonic
26
      - Pentax / Asahi
27
    - Improved support for models:
28
      - Olympus
29
      - Canon (tested with newer Canon models, including the 20D)
30
      - Casio (for more modern models)
31
  - Source distribution filesize reduced by using .metadata files, rather than entire sample JPEG files.
32
    These .metadata files contain all non-image JPEG segments, making them suitable for unit tests whilst
33
    being much smaller on disk.
34
 
35
v2.2.2 - 22 Nov 2003
36
-------------------------------
37
 
38
 - Fixed a bug where version strings were assumed to be comprised of exactly four parts,
39
   and cases were found where a different number existed
40
 
41
v2.2.1 - 24 Oct 2003
42
-------------------------------
43
 
44
 - Fixed a bug where JpegDirectory had tag names for image width and height around
45
   the wrong way.  Thanks to Sander Smith for pointing this out
46
 
47
v2.2 - 18 Oct 2003
48
-------------------------------
49
 
50
 - Added support for extraction of Jpeg image information (from the SOF0 segment)
51
   Thanks to Darrell Silver for commencing the code for this extension
52
 - Added support for reading Jpeg comments
53
 - Additional Nikon camera makernote support for D1/D100 family models
54
   Thanks to Daniel Waeber for providing sample images and to Fabrizio Giudici for
55
   publishing his work in decoding this makernote data
56
 - Added convenient writing of thumbnails to files from ExifDirectory
57
 - Fixed a bug in date format strings, whereby times in the AM / PM were indistinguishable
58
   Thanks to Bill Boland for being the first person to point this out (this was a popular one!)
59
 - Fixed bug for multi-component tag values of certain types
60
   Thanks to Derek Wegner for identifying the bug and providing a solution
61
 - More unit tests (consequently, the source-code download is much larger)
62
 - First version with an Ant build script
63
 
64
v2.1 - 12 Jan 2003
65
-------------------------------
66
 
67
  - Extract methods no longer throw exceptions, with error information stored
68
    in Metadata instances, using hasErrors() and getErrors()
69
  - Metadata and dependant classes now serializable for network transmission,
70
    and persistance in files & databases
71
  - Support for extracting metadata from InputStreams, such as network connections
72
  - Replaced code that depended upon JDK 1.4
73
 
74
v2.0 - 10 Dec 2002
75
-------------------------------
76
 
77
  Enormous changes to the class and package structure in this release prohibit a
78
  class-by-class breakdown of changes.  The focus is no longer on Exif metadata
79
  alone, but now on general metadata extraction from multiple media types.
80
 
81
  Changes support:
82
    - easier future extensibility
83
    - Iptc metadata extraction
84
    - multiple directories of tags
85
    - descriptor class for interpreting values in a given directory
86
    - multiple media and metadata types
87
    - enhanced handling of exif makernote values
88
    - many more unit tests
89
    - numerous enhancements
90
    - minor bug fixes
91
 
92
  Simpler extensibility changes the focus from exif extraction alone and opens
93
  the scope to general metadata extraction.  Future development will introduce
94
  new media and metadata support with little or no impact to existing classes.
95
 
96
v1.2 - 6 Nov 2002
97
-------------------------------
98
 
99
  ExifExtractor.java
100
    - Proper traversing of Exif file structure and complete refactor & tidy of
101
      the codebase (a few unnoticed bugs removed)
102
    - Reads makernote data for 6 families of camera (5 makes)
103
    - Tags now stored in directories... use the IFD_* constants to refer to the
104
      image file directory you require (Exif, Interop, GPS and Makernote*) --
105
      this avoids collisions where two tags share the same code
106
    - Correct extraction of multi-component values
107
    - No longer decodes image to extract Exif data -- this is much faster
108
    - Takes componentCount of unknown tags into account
109
    - Now understands GPS tags (thanks to Colin Briton for his help with this)
110
    - Returns null when no Exif data present, instead of throwing an exception
111
    - Some other bug fixes, pointed out by users around the world.  Thanks!
112
 
113
  ExifLoader
114
    - Removed (unnecessary)
115
 
116
  ImageInfo.java
117
    - Stored IFD directories in separate tag-spaces
118
    - iterator() now returns an Iterator over a list of TagValue objects
119
    - More get*Description() methods to detail GPS tags, among others
120
 
121
  TagValue.java
122
    - New class to encapsualte information about a particular tag
123
 
124
  Rational.java
125
    - Improved toSimpleString() to factor more complex rational numbers into
126
      a simpler form
127
        i.e.
128
          10/15 -> 2/3
129
    - toSimpleString() now accepts a boolean flag, 'allowDecimals' which will
130
      display the rational number in decimal form if it fits within 5 digits
131
        i.e.
132
          3/4 -> 0.75 when allowDecimal == true
133
 
134
  JpegSegmentReader
135
    - New class to extract APP1 segment (and others) from a Jpeg file -- this
136
      avoids decoding images just to get metadata
137
 
138
  tests\*.java
139
    - First collection of basic unit tests, to compile against JUnit
140
    - Doesn't yet cover all classes
141
 
142
  Website
143
    - A collection of JPEGs from various digital camera models, collected on
144
      the web and contributed by many users of ExifExtractor
145
    - Updated documentation
146
 
147
 
148
v1.1.1
149
-------------------------------
150
 
151
  Rational.java
152
    - Added toSimpleString() method, which returns a simplified and hopefully
153
      more readable version of the Rational
154
        i.e.
155
          2/10 -> 1/5
156
          10/2 -> 5
157
 
158
  ExifExtractor.java
159
    - Removed unnecessary casting operations
160
    - Added a few more comments
161
    - Removed redundant and commented code (I'm using a CVS system now)
162
 
163
  ExifLoader.java
164
    - Added a much-needed close() call to a created input stream, allowing
165
      continued use of the File object passed to ExifLoader.getImageInfo(File)
166
 
167
  ImageInfo.java
168
    - Make use of new Rational method toSimpleString() for more elegant output -
169
      Use of DecimalFormatter to tidy output in selected get***Description() methods
170
 
171
v1.1.0 - 28 Aug 2002
172
-------------------------------
173
 
174
  - Descriptive tag values, including units and text for enumerations
175
  - Decoupling from JDK 1.4-specific libraries (tested with JDK 1.3)
176
  - More complete list of tags, both as constants for direct lookup, and via the
177
    static lookup method
178
 
179
v1.0
180
-------------------------------
181
 
182
  - Initial release