Download Latest Version Alpha 0.14 (3.6 MB)
Email in envelope

Get an email when there's a new version of MetaDataSpr

Home / OldFiles / Alpha 0.12
Name Modified Size InfoDownloads / Week
Parent folder
readme.txt 2010-03-06 14.6 kB
MetaDataSpr-src-12alpha.zip 2010-03-06 3.7 MB
MetaDataSpr-12alpha.zip 2010-03-06 3.5 MB
Totals: 3 Items   7.2 MB 0
Meta Data Spring Project.

Version	: Alpha 0.12
Date	: March 2010
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.12

-------------------------------------------------------------------------------

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] 
	              -GC 
	              -T:[X]
	              
	-T will activate multi-thread treatment. The X is the maximum number of 
	   thread allowed. Each image will be treated in one thread.
       Result on memory usage and processor time consumption may differ, 
       regarding your system and the size of the images you want to analyze.
       Of course, this is only useful when you analyze more than one image. 
       There is no maximum value, but above 8 the result are mostly the same.
	-GC will optimize memory usage but will slow down execution.
    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
    Will create a file c:/temp/xx.txt for each JPG file in c:/temp as result.
    Using 4 threads.
      java -jar MetaDataSpr.jar -I:c:/temp/ -M:EXIF -T:4
    
    If you get an out of memory error you can do:
      java -Xms128M -Xmx512M -jar MetaDataSpr.jar ...
    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.
	
	Most of bugs are are for Nikon tags right now.

-------------------------------------------------------------------------------

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)
      		   - Synchronization 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      		   

      v0.10 Alpha : Seventh release (2010 Jan 09)
      		   - Pentax added 
      		     - But does not work at all with istD picture and some devices
      		   - Kodak added 
      		     - But does not work with all kodak devices (Type 8 & 10)
      		   - Some Sony devices are now better analyzed (since they were 
      		     using olympus directory)
      		   - Changed dependencies, using Spring 3.0 release
      		     - Removed bean id when not necessary
      		     - Changed the way tags are linked (for canon afinfo and 
      		       afinfo2)
      		   - Changed some interfaces for easier code reading
			   - Corrected a bug in computation of tag length
			   - Added -GC option in order to activate or not memory usage. 
			     I added this because the cost of memory usage is upon 
			     execution time.

      v0.11 Alpha : Height release (2010 Fev 14)
      		   - Minolta added.
      		   - Corrected a bug with Kodak type discovery.
      		   	- Added the fact that KodakBordersIFD, KodakEffectsIFD and
      		   	  MetaIFD are not analyzed.
      		   - Added a lot of images for better testing.
      		   - Added a MetaDataSpr segment for keeping track of
      		     information such as file name, date of analyze and
      		     time used for analyze.
      		   - Changed completely parser philosophy
      		     - Will speed up treatment of data a lot.
      		     - Will consume less memory (twice less).
      		   - Uniformization for logging message in all parser.
      		   - Updated some Canon decorator (this explain the small raise 
      		     for this family of tags).
      		   - Synchronization with ExifTool 8.10
      		   	 - Except for Nikon
      		   
      v0.12 Alpha : Ninth release (2010 March)
      		   - XMP family tag added.
      		     - Change ITag interface/class hierarchy
      		     - Note: I could not test all XMP tags yet ...
      		   - Added multi-thread treatments (-T:x option)
      		     - As a result, access to Spring context is now 
      		       synchronized when needed (prototype object)       		       
      		     - This gives a small speed up (very small since the 
      		       slowest part of the code is the instantiation time
      		       for marker note and directories)
      		     - Note that time of analyze is WRONG when using multi-thread
      		     - In order to have more readable logs, added file name in
      		       log line
      		   - Updates in Spring file for better centralization of spring 
      		     options.
                 - scope and lazy-init MUST be used direcly for each tag
				 - Used default-lazy-init for better reading
      		   - Using Spring 3.0.1 (instead of 3.0.0)
      		   - Made a common bundle for words that are used more than once.
      		   - Some decorator were adjusted
      		   
      		   
-------------------------------------------------------------------------------
               
5. Result file for Alpha 0.12 

		View more informations in Result-*-.xls file.
               
		Marker		OK		Error	Missing		NbImage		Time(ms)
												
		Canon		95,77	3,90	0,33		81			134
		Olympus		97,05	2,79	0,16		20			98
		Nikon*		80,09	9,57	10,34		120			74
		Fujifilm	97,34	2,66	0,00		12			31
		Casio		94,19	4,80	1,01		29			31
		Sony		97,49	1,77	0,74		62			41
		Kodak **	88,63	2,02	9,35		58			28
		HP **		100,00	0,00	0,00		1			42
		Gps			95,38	4,62	0,00		1			54
		Panasonic	98,56	1,44	0,00		58			31
		Pentax **	69,82	3,32	26,87		48			37
		Minolta		95,81	3,89	0,30		92			49
		Others		85,25	14,75	0,00		4			21

		Total		91,95	4,27	3,78		586			51,59

		
		Date	2010-02-14		
		MetaDataSpr	Alpha 0.11		
		ExifTool	8.10		
		
		* A lots of information are crypted into Nikon MetaData.			
		** Not fully coded yet			
					
		Following tags are not analyzed:			
		ExifTool	JFIF	System	ICC
		Composite	FotoStation	CanonVRD	IPTC2
		Photoshop	File2	File	MPImage2
		Adobe		KodakEffectsIFD	KodakBordersIFD	MPImage1
		MetaIFD		FlashPix	MPF0
			               
Source: readme.txt, updated 2010-03-06