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 |