Meta Data Spring Project.
Version : Alpha 0.9
Date : 25 Nov 2009
Author : Ferret Renaud (renaud91@users.sourceforge.net)
URL : http://sourceforge.net/projects/metadataspr/
-------------------------------------------------------------------------------
1. Aim of this project
2. Launch
3. Known bug or issues
4. Historic
5. Result file for Alpha 0.9
-------------------------------------------------------------------------------
1. Aim of this project
Extract meta data from image.
Use XML Spring file in order to add/remove/customize meta data reading
and viewing.
This project is not capable of writing meta data back into images.
This project greatly inspired from:
- http://sourceforge.net/projects/metaphile - Metaphile from Stuart Wigley
- http://www.drewnoakes.com/code/exif/ - MetaDataExtractor from Drew Noake
- http://www.sno.phy.queensu.ca/~phil/exiftool/ - ExifTool by Phil Harvey
-------------------------------------------------------------------------------
2. Launch
2.1 Before starting
This software need a Java virtual machine installed on your computer.
The minimal version needed is 6.
In order to download a Java VM you can go to http://java.sun.com.
If you want to check the current version running on your system, simply
open a console window and type :
java -version
If you get no answer then you have no Java, if the version is bellow 1.6
then you've an inappropriate version of Java for this software.
2.2 At last, starting
Keep in mind that this software is still in alpha, so a lot of code may
change until first release.
Use mdt.Run class in order to start the project.
java -jar MetaDataSpr.jar -I:[InPutFileName] -O:[OutPutFileName] -M:[MODE]
Where MODE can be one of the following:
- XML: will return an XML file. Note that all values will be in CDDATA
in order to avoid errors.
- TXT: will return an simple TXT file.
- EXIF: will return a simple TXT file a similar as possible to the
ExifTool project.
For examples:
Will create a file c:/toto.xml as result
java -jar MetaDataSpr.jar -I:c:/toto.jpg -O:c:/toto.xml -M:XML
java -jar MetaDataSpr.jar -I:c:/toto.jpg -M:XML
java -jar MetaDataSpr.jar -I:c:/toto.jpg
Will create a file c:/toto.txt as result
java -jar MetaDataSpr.jar -I:c:/toto.jpg -O:c:/toto.txt -M:EXIF
java -jar MetaDataSpr.jar -I:c:/toto.jpg -M:EXIF
java -jar MetaDataSpr.jar -I:c:/toto.jpg -M:TXT
Will create a file c:/temp/xx.txt for each JPG file in c:/temp as result
java -jar MetaDataSpr.jar -I:c:/temp/ -M:EXIF
java -jar MetaDataSpr.jar -I:c:/temp/ -M:TXT
If you get an out of memory error you can do:
java -Xms128M -Xmx512M -jar MetaDataSpr.jar -I:[IN] -O:[OUT] -M:[MODE]
Caution to Upper/Lower cases in the Xms and Xmx options.
Xms: minimum memory that can be used.
Xmx: maximum memory that can be used.
-------------------------------------------------------------------------------
3. Known bug or issues
A lot for sure, still in alpha.
Some picture with odd Meta Data structure may not work at all.
You can send me reports of images that does not work.
Reading the mdt/Todo class may help you with the known bugs.
-------------------------------------------------------------------------------
4. Historic
v0.4 Alpha : First release (2009 Mai 10)
- Canon meta data (all cases) should work at 95%
- Exif meta data should work at 90%
- TIFF (or Exif IFDx) meta data should work at 90%
- GPS meta data should work at 99%
- IPTC meta data should work at 95%
v0.5 Alpha : Second release (2009 Mai 16)
- Recoded the Exif engine for more efficient reading
- Added exception every where
- OutPut (Txt/Exif) will no more show empty directory
- Canon meta data
- Changed a label for Custom 10D
- Corrected an error in FileInfo parser
- adjusted some parser for better speed
- Will no more read twice a tag (idfX issue)
- So X and Y Resolution should be more accurate for TIFF
- GPS meta data
- Better decoration of latitude / longitude
- Removed coordinates and Timestamp Java type
- Casio (type1 and 2) meta data should work at 95%
- FujiFilm meta data should work at 90%
v0.6 Alpha : Third release (2009 June 16)
- Reorganized the Spring imports. Each directory now handle its
own files.
- Began the Nikon directory (type1, 2 and '3').
Restriction for coded tag : will stay that way until I
understand how to decode them.
Nikon should work at 50%.
- Corrected a big bug in SignedShort
- Added easy constructors for rational
- Changed the MarkerRule behavior and added ByteRule
- Upgraded ExifSegment analyze for IParser length (will
be more accurate and consume less memory)
- Changed the type definition for all Tags.
Impact is heavy on Spring declaration, but make things more
easy (declarations may change again with Spring 3.0)
- Updated Canon1D custom function parsing
- Changed the Run.class for better handling
v0.7 Alpha : Fourth release (2009 June 28)
- Nikon should work at 65%.
- Removed a System.out.println in Canon (forgot it in previous
release)
- Added better handling for rational with a zero denominator
- Coded the masked tag for Nikon (flash, lensdata, ...)
- Removed classes / interfaces XxxMakerTag and XxxOffsetTag
in order to simplify code. Impacted Spring files.
- Removed the notion of group, this may come back later but
was not used
- Removed the preview tag for now, may come back later
- Removed trace log in tag constructor since there is a Spring
option for that
- Centralized all parsing / reading of type into one method
(UtilsType.readValue). This corrected a bug in IndexedParser
- Added checks while parsing array values
- Added bench info for time and memory consumption
- Optimized memory usage for tag. Will only keep byte
representation if needed.
- Moved name property and getDescription method into
AbstractObject class.
- Changed type of bundle property for AbstractObject into
HierarchicalMessageSource
v0.8 Alpha : Fifth release (2009 july 24)
- Completed some Nikon tags and decorator
- Corrected an error with Exif User comment not showing
properly
- Corrected an error with TagContainer counting (error due
to masked type)
- Olympus should work at 90% (see new result file)
- Changed method getMessage in order to use ... instead
of Object[]
- Corrected possible infinite loop for Canon Custom Function 2
- Replaced project URL (https -> http)
- Changed IPTC segment parser for better handling of tags
- IPTC Digits works better now (Urgency and Envelope priority)
- IPTC Added a decorator for Category (regarding specs)
- Changed all Parser behavior for better handling. Should
prevent two bugs that popped up in Olympus parsing.
- Renamed TYPE_LONG_UNSIGNED and TYPE_LONG_SIGNED into
TYPE_UNSIGNED_LONG and TYPE_SIGNED_LONG for consistency.
- Added a new file in release that will contained
- detailed camera list used for testing
- % of tag found, ok, ko
This mechanic should prevent regressions.
- Corrected casio2.previewimage declaration in spring
- Corrected issue with FacePositions in Fujifilm
- Classes used for test/generation have been moved to an
other project
v0.9 Alpha : Sixth release (2009 nov 25)
- Syncronisation with ExifTool 7.98
- Canon tags updated (added 7D and EOS-1D Mark IV, split
PowerShotCameraInfo)
- Casio tags updated (new tags)
- TIFF (label adjustment)
- FujiFilm (label adjustment)
- Olympus (bug corrected and label adjustment)
- Corrected bugs with PowerShots, better recognition for Canon
- Corrected Typo with IDF_
- Added Sony tags (works at 95%).
- Added Panasonic tags (works at 95%).
- Changed the Decorator pattern for all tags
- Changed the getType method for ITag
- Moved getValueAsXxx from Decorator to ITag
- Corrected an error in Rational for 0 value (represented as NaN)
- Adjusted TestElment (used for Result File) in order to be more
efficient with numbers.
- Added Windows string decorator (for IDF-Xp...)
- Re-organized Tags classes and interfaces
-------------------------------------------------------------------------------
5. Result file for Alpha 0.9
View more informations in Result-*-.xls file.
Marker OK Error Missing
Canon 95,60 4,12 0,28
Olympus 97,64 2,36 0,00
Nikon* 81,78 14,10 4,12
Fujifilm 97,34 2,66 0,00
Casio 93,18 4,80 2,02
Sony 97,64 1,71 0,65
Kodak ** 70,75 2,12 27,12
HP ** 100,00 0,00 0,00
Gps 95,38 4,62 0,00
Panasonic 98,62 1,38 0,00
Pentax ** 25,32 0,62 74,06
Others 85,25 14,75 0,00
Total % 86,54 4,43 9,02
Date 2009-11-24
MetaDataSpr Alpha 0.9
ExifTool 7.98
* A lots of information are crypted into Nikon MetaData.
** Not fully coded yet
Following tags are not analyzed:
System CanonVRD
File ExifTool
Composite Photoshop
Adobe JFIF
FotoStation File2
XMP ICC
IPTC2 MPImage2
MPImage1 MPF0