3 Things! • What is Exif?! • Binary Data and Typed Array support! • Walking through an Exif example! Photo by Sandy http://www.flickr.com/photos/dacotahsgirl/299198494/
What is Exif?! • Exchangeable Image File Format! • Describes tags used in images, sounds, tags used in digital still cameras! Photo by max shirley http://www.flickr.com/photos/maxshirley/123499064/
Flickr`s Old and New Parsing Methods! • Old! • Php - ExifTool Implementation! • New! • Client-Side via JavaScript! Photo by kamerakamote http://www.flickr.com/photos/tzf093/5025016700/
Why Client Side?! • Quicker results to the user! • Asynchronously in a separate thread from the UI via web workers! • Considerations! Photo by texaus1 http://www.flickr.com/photos/texaus1/6339147317/
Binary Data! Exif Data Type (UINT)
Defined as
1
BYTE An 8-bit unsigned integer
2
ASCII An 8-bit byte containing one 7-bit ASCII code. The final byte is terminated with NULL.
3
SHORT A 16-bit (2-byte) unsigned integer
4
LONG A 32-bit (4-byte) unsigned integer
5
RATIONAL Two LONGs. The first LONG is the numerator and the second LONG expresses the denominator.
7
UNDEFINED An 8-bit byte that can take any value depending on the field definition
9
SLONG A 32-bit (4-byte) signed integer (2`s complement notation)
10
SRATIONAL Two SLONGs. The first SLONG is the numerator and the second SLONG is the denominator