From 3cdb59fd80c7f44a5cf90014677c148ce72b1cf9 Mon Sep 17 00:00:00 2001 From: Dustin Oprea Date: Tue, 19 May 2020 02:43:15 -0400 Subject: [PATCH] exif-read-tool: Fix unit-tests and remove unnecessary conditional for 4686c99 --- v2/assets/exif_read.json | 850 ------------------------------ v2/assets/main_test_exif.json | 909 +++++++++++++++++++++++++++++++++ v2/exif-read-tool/main.go | 5 - v2/exif-read-tool/main_test.go | 97 ++-- 4 files changed, 965 insertions(+), 896 deletions(-) delete mode 100644 v2/assets/exif_read.json create mode 100644 v2/assets/main_test_exif.json diff --git a/v2/assets/exif_read.json b/v2/assets/exif_read.json deleted file mode 100644 index d030651..0000000 --- a/v2/assets/exif_read.json +++ /dev/null @@ -1,850 +0,0 @@ -[ - { - "ifd_path": "IFD", - "fq_ifd_path": "IFD", - "ifd_index": 0, - "tag_id": 271, - "tag_name": "Make", - "tag_type_id": 2, - "tag_type_name": "ASCII", - "unit_count": 6, - "value": "Canon", - "value_string": "Canon" - }, - { - "ifd_path": "IFD", - "fq_ifd_path": "IFD", - "ifd_index": 0, - "tag_id": 272, - "tag_name": "Model", - "tag_type_id": 2, - "tag_type_name": "ASCII", - "unit_count": 22, - "value": "Canon EOS 5D Mark III", - "value_string": "Canon EOS 5D Mark III" - }, - { - "ifd_path": "IFD", - "fq_ifd_path": "IFD", - "ifd_index": 0, - "tag_id": 274, - "tag_name": "Orientation", - "tag_type_id": 3, - "tag_type_name": "SHORT", - "unit_count": 1, - "value": [ - 1 - ], - "value_string": "1" - }, - { - "ifd_path": "IFD", - "fq_ifd_path": "IFD", - "ifd_index": 0, - "tag_id": 282, - "tag_name": "XResolution", - "tag_type_id": 5, - "tag_type_name": "RATIONAL", - "unit_count": 1, - "value": [ - { - "Numerator": 72, - "Denominator": 1 - } - ], - "value_string": "72/1" - }, - { - "ifd_path": "IFD", - "fq_ifd_path": "IFD", - "ifd_index": 0, - "tag_id": 283, - "tag_name": "YResolution", - "tag_type_id": 5, - "tag_type_name": "RATIONAL", - "unit_count": 1, - "value": [ - { - "Numerator": 72, - "Denominator": 1 - } - ], - "value_string": "72/1" - }, - { - "ifd_path": "IFD", - "fq_ifd_path": "IFD", - "ifd_index": 0, - "tag_id": 296, - "tag_name": "ResolutionUnit", - "tag_type_id": 3, - "tag_type_name": "SHORT", - "unit_count": 1, - "value": [ - 2 - ], - "value_string": "2" - }, - { - "ifd_path": "IFD", - "fq_ifd_path": "IFD", - "ifd_index": 0, - "tag_id": 306, - "tag_name": "DateTime", - "tag_type_id": 2, - "tag_type_name": "ASCII", - "unit_count": 20, - "value": "2017:12:02 08:18:50", - "value_string": "2017:12:02 08:18:50" - }, - { - "ifd_path": "IFD", - "fq_ifd_path": "IFD", - "ifd_index": 0, - "tag_id": 315, - "tag_name": "Artist", - "tag_type_id": 2, - "tag_type_name": "ASCII", - "unit_count": 1, - "value": "", - "value_string": "" - }, - { - "ifd_path": "IFD", - "fq_ifd_path": "IFD", - "ifd_index": 0, - "tag_id": 531, - "tag_name": "YCbCrPositioning", - "tag_type_id": 3, - "tag_type_name": "SHORT", - "unit_count": 1, - "value": [ - 2 - ], - "value_string": "2" - }, - { - "ifd_path": "IFD", - "fq_ifd_path": "IFD", - "ifd_index": 0, - "tag_id": 33432, - "tag_name": "Copyright", - "tag_type_id": 2, - "tag_type_name": "ASCII", - "unit_count": 1, - "value": "", - "value_string": "" - }, - { - "ifd_path": "IFD", - "fq_ifd_path": "IFD", - "ifd_index": 0, - "tag_id": 34665, - "tag_name": "ExifTag", - "tag_type_id": 4, - "tag_type_name": "LONG", - "unit_count": 1, - "value": [ - 360 - ], - "value_string": "360" - }, - { - "ifd_path": "IFD/Exif", - "fq_ifd_path": "IFD/Exif", - "ifd_index": 0, - "tag_id": 33434, - "tag_name": "ExposureTime", - "tag_type_id": 5, - "tag_type_name": "RATIONAL", - "unit_count": 1, - "value": [ - { - "Numerator": 1, - "Denominator": 640 - } - ], - "value_string": "1/640" - }, - { - "ifd_path": "IFD/Exif", - "fq_ifd_path": "IFD/Exif", - "ifd_index": 0, - "tag_id": 33437, - "tag_name": "FNumber", - "tag_type_id": 5, - "tag_type_name": "RATIONAL", - "unit_count": 1, - "value": [ - { - "Numerator": 4, - "Denominator": 1 - } - ], - "value_string": "4/1" - }, - { - "ifd_path": "IFD/Exif", - "fq_ifd_path": "IFD/Exif", - "ifd_index": 0, - "tag_id": 34850, - "tag_name": "ExposureProgram", - "tag_type_id": 3, - "tag_type_name": "SHORT", - "unit_count": 1, - "value": [ - 4 - ], - "value_string": "4" - }, - { - "ifd_path": "IFD/Exif", - "fq_ifd_path": "IFD/Exif", - "ifd_index": 0, - "tag_id": 34855, - "tag_name": "ISOSpeedRatings", - "tag_type_id": 3, - "tag_type_name": "SHORT", - "unit_count": 1, - "value": [ - 1600 - ], - "value_string": "1600" - }, - { - "ifd_path": "IFD/Exif", - "fq_ifd_path": "IFD/Exif", - "ifd_index": 0, - "tag_id": 34864, - "tag_name": "SensitivityType", - "tag_type_id": 3, - "tag_type_name": "SHORT", - "unit_count": 1, - "value": [ - 2 - ], - "value_string": "2" - }, - { - "ifd_path": "IFD/Exif", - "fq_ifd_path": "IFD/Exif", - "ifd_index": 0, - "tag_id": 34866, - "tag_name": "RecommendedExposureIndex", - "tag_type_id": 4, - "tag_type_name": "LONG", - "unit_count": 1, - "value": [ - 1600 - ], - "value_string": "1600" - }, - { - "ifd_path": "IFD/Exif", - "fq_ifd_path": "IFD/Exif", - "ifd_index": 0, - "tag_id": 36864, - "tag_name": "ExifVersion", - "tag_type_id": 7, - "tag_type_name": "UNDEFINED", - "unit_count": 4, - "value": { - "ExifVersion": "0230" - }, - "value_string": "0230" - }, - { - "ifd_path": "IFD/Exif", - "fq_ifd_path": "IFD/Exif", - "ifd_index": 0, - "tag_id": 36867, - "tag_name": "DateTimeOriginal", - "tag_type_id": 2, - "tag_type_name": "ASCII", - "unit_count": 20, - "value": "2017:12:02 08:18:50", - "value_string": "2017:12:02 08:18:50" - }, - { - "ifd_path": "IFD/Exif", - "fq_ifd_path": "IFD/Exif", - "ifd_index": 0, - "tag_id": 36868, - "tag_name": "DateTimeDigitized", - "tag_type_id": 2, - "tag_type_name": "ASCII", - "unit_count": 20, - "value": "2017:12:02 08:18:50", - "value_string": "2017:12:02 08:18:50" - }, - { - "ifd_path": "IFD/Exif", - "fq_ifd_path": "IFD/Exif", - "ifd_index": 0, - "tag_id": 37121, - "tag_name": "ComponentsConfiguration", - "tag_type_id": 7, - "tag_type_name": "UNDEFINED", - "unit_count": 4, - "value": { - "ConfigurationId": 2, - "ConfigurationBytes": "AQIDAA==" - }, - "value_string": "Exif9101ComponentsConfiguration\u003cID=[YCBCR] BYTES=[1 2 3 0]\u003e" - }, - { - "ifd_path": "IFD/Exif", - "fq_ifd_path": "IFD/Exif", - "ifd_index": 0, - "tag_id": 37377, - "tag_name": "ShutterSpeedValue", - "tag_type_id": 10, - "tag_type_name": "SRATIONAL", - "unit_count": 1, - "value": [ - { - "Numerator": 614400, - "Denominator": 65536 - } - ], - "value_string": "614400/65536" - }, - { - "ifd_path": "IFD/Exif", - "fq_ifd_path": "IFD/Exif", - "ifd_index": 0, - "tag_id": 37378, - "tag_name": "ApertureValue", - "tag_type_id": 5, - "tag_type_name": "RATIONAL", - "unit_count": 1, - "value": [ - { - "Numerator": 262144, - "Denominator": 65536 - } - ], - "value_string": "262144/65536" - }, - { - "ifd_path": "IFD/Exif", - "fq_ifd_path": "IFD/Exif", - "ifd_index": 0, - "tag_id": 37380, - "tag_name": "ExposureBiasValue", - "tag_type_id": 10, - "tag_type_name": "SRATIONAL", - "unit_count": 1, - "value": [ - { - "Numerator": 0, - "Denominator": 1 - } - ], - "value_string": "0/1" - }, - { - "ifd_path": "IFD/Exif", - "fq_ifd_path": "IFD/Exif", - "ifd_index": 0, - "tag_id": 37383, - "tag_name": "MeteringMode", - "tag_type_id": 3, - "tag_type_name": "SHORT", - "unit_count": 1, - "value": [ - 5 - ], - "value_string": "5" - }, - { - "ifd_path": "IFD/Exif", - "fq_ifd_path": "IFD/Exif", - "ifd_index": 0, - "tag_id": 37385, - "tag_name": "Flash", - "tag_type_id": 3, - "tag_type_name": "SHORT", - "unit_count": 1, - "value": [ - 16 - ], - "value_string": "16" - }, - { - "ifd_path": "IFD/Exif", - "fq_ifd_path": "IFD/Exif", - "ifd_index": 0, - "tag_id": 37386, - "tag_name": "FocalLength", - "tag_type_id": 5, - "tag_type_name": "RATIONAL", - "unit_count": 1, - "value": [ - { - "Numerator": 16, - "Denominator": 1 - } - ], - "value_string": "16/1" - }, - { - "ifd_path": "IFD/Exif", - "fq_ifd_path": "IFD/Exif", - "ifd_index": 0, - "tag_id": 37500, - "tag_name": "MakerNote", - "tag_type_id": 7, - "tag_type_name": "UNDEFINED", - "unit_count": 8152, - "value": { - "MakerNoteType": "KAABAAMAMQAAAHQFAAACAAMABAA=", - "MakerNoteBytes": "KAABAAMAMQAAAHQFAAACAAMABAAAANYFAAADAAMABAAAAN4FAAAEAAMAIgAAAOYFAAAGAAIAFgAAACoGAAAHAAIAGAAAAEoGAAAJAAIAIAAAAGIGAAANAAcAAAYAAIIGAAAQAAQAAQAAAIUCAIATAAMABAAAAIIMAAAZAAMAAQAAAAEAAAAmAAMACQEAAIoMAAA1AAQABAAAAJwOAACTAAMAHgAAAKwOAACVAAIASgAAAOgOAACWAAIAEAAAADIPAACXAAcAAAQAAEIPAACYAAMABAAAAEITAACZAAQAUwAAAEoTAACaAAQABQAAAJYUAACgAAMADgAAAKoUAACqAAMABgAAAMYUAAC0AAMAAQAAAAEAAADQAAQAAQAAAAAAAADgAAMAEQAAANIUAAABQAMAIAUAAPQUAAAIQAMAAwAAADQfAAAJQAMAAwAAADofAAAQQAIAIAAAAEAfAAARQAcA/AAAAGAfAAASQAIAIAAAAFwgAAATQAQACwAAAHwgAAAVQAcAyAEAAKggAAAWQAQABwAAAHAiAAAYQAQABwAAAIwiAAAZQAcAHgAAAKgiAAAhQAQABQAAAMYiAAAlQAQACQAAANoiAAAnQAQABQAAAP4iAAAoQAQAEwAAABIjAAAAAAAAYgACAAAAAwAAAAQAAAAAAAAAAQABAAEAAAAAAAAA/38PAAMAAgAAAAIA///7ASMAEAABAIAAIAEAAAAAAAAAAP///////wAAAAAAAAAA/////wAAAAD/f////////wAA//8AABAAhdLMLwAAAAAAAAAARAAAACABkACAACwBAAAAAAMAAAAIAAgAmQAAAAAAAAAAAAAAAQAAAAAAhAAsAX0AAAAAAPgA//////////8AAAAAAABDYW5vbiBFT1MgNUQgTWFyayBJSUkAAAAAAAAAAAAAAEZpcm13YXJlIFZlcnNpb24gMS4zLjQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqqqDKYMoaAABeAF0AAMAAAAAAAABAAAGAAAAmZoAYQB9AHwAEAAAAAIAAAAAAwAAAAAAAAAQAAABu7tqQP/6QIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQP8AagArAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAAAAAAEAAAAAAAAAAAAAAAAAAAD//wHWBB8fAAAAAAAA/////wzMzAEAAAADAAAABQAAAAAAAAAFAAAAAGoAAAAAagAAAAAA+BEAAAABAAEAAQAAAQAAAAEAAAABAAAAAwAAAAMAAAADAAAAAAAAAAEAAAAAAAAAAAAAAIcAAAABAAAAAQAAAAEAAAAHAAAAAAAAAwUD//8DBwAAAAAAAAcAAAAAAAAWAQAAAgAFAAAAAAAEAAkAAAAAAAEACQEAAAAAAAAABgEAAAcDAwMC/wAAAAAAAAAAAShQAfsAEAAjkXeab4j/AAAAAAAkAAAQaAEABgcpAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAIAWAAAADwAAABIAAIAKAABAAgAAAAMAANACAADgAQAAAAAAAAAAAADQAgAA4AEAANACAADgAQAAAAAAAAAAAADQAgAA4AEAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP////////////////////8AAgAAAAAAAAAAAAAKAgABAAEAAAACAQAAAAAAAAIBAQEAAAAAAAAAAAAAAAAAAAAxLjMuNABBQSgzNCkAVlEAGAKYGVj+EwBk7gAAZO4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIMAAABkAAAAZAAAAMQbAADEIgAAAAAAAIQAAABlAAAAZAAAAAgAAAAIAAAACAAAAAgAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADrAQAEAAR+AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOsBAAQABH4CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6wEABAAEfgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADrAQAEAAR+AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOsBAAQABH4CAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAwAAAAAAAAAAAAAA776t3u++rd4AAAAAAgAAAAAAAAAAAAAA776t3u++rd4AAAAABAAAAAAAAAAAAAAA776t3u++rd4AAAAAAAAAAAAAAAAAAAAA776t3u++rd4AAAAAAAAAAAAAAAAAAAAA776t3u++rd4AAAAAAwAAAO++rd7vvq3eAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAA776t3u++rd4AAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAACBAIEAgQAAAP//////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABAAEAAQAAAAAAAAAAOphIloAAAAAAgAAAAAAAAACAAAAAAAAAAIAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAMA2AADEOQEAAAAAAAAAAAAAAAAAAwAAAFMAAABYAAOAAAAAAAMAAABNAAAATgAAAAAAAAADAAAAMwAAADsAA4AAAAAAAwAAAFQAAACfAAcAcAASAgIAPQA9AAAPAAoADwAKfgB+AH4AfgB+AH4AfgB+AH4AfgB+AH4AfgB+AH4AfgB+AH4AfgB+AH4AfgB+AH4AfgB+AH4AfgB+AH4AfgB+AH4AfgB+AH4AfgB+AH4AfgB+AH4AfgB+AH4AfgB+AH4AfgB+AH4AfgB+AH4AfgB+AH4AfgB+AH4AfgB9AH0AfQB9AH0AfQB9AH0AfQB9AH0AfQB9AH0AfQB9AH0AfQB9AH0AfQB9AH0AfQB9AH0AfQB9AH0AfQB9AH0AfQB9AH0AfQB9AH0AfQB9AH0AfQB9AH0AfQB9AH0AfQB9AH0AfQB9AH0AfQB9AH0AfQB9AH0AfQB9AMAAAABA//UDNQN1AqoBwAAAAAv8y/yL/Vb+QP/1AzUDdQKqAcAAAAAL/Mv8i/1W/kD/9QM1A3UCqgHAAAAAC/zL/Iv9Vv5A//UDNQN1AqoBwAAAAAv8y/yL/Vb+QP/1AzUDdQKqAcAAAAAL/Mv8i/1W/kD/wAAAAED/UP5Q/lD+3/7f/t/+3/7f/t/+3/7f/t/+3/7f/nH/cf9x/3H/cf9x/3H/cf9x/3H/cf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAjwCPAI8AjwCPAI8AjwCPAI8AjwCPACEBIQEhASEBIQEhASEBIQEhASEBIQGwAbABsAEAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAD//xAAAADgAQAACAAAADwAAAA8AAAAAAAAAAAAAAAAAAAA//8AAAAAAAAAAAAA/////2EA//8AAAAA///WAQAAAAAAAAAA//8AAB8AHwBFRjE2LTM1bW0gZi80TCBJUyBVU00AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//9IzEFEMDQxMzg5NQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABMAQAAAwAAAAEAAABUAAAABgAAAAEBAAABAAAAAAAAAAIBAAABAAAAAAAAAAQBAAABAAAAAAAAAAUBAAABAAAAAAAAAAYBAAACAAAAAwAAAAAAAAAIAQAAAQAAAAAAAAACAAAAIAAAAAIAAAAKBAAAAQAAAAcAAAALBAAAAQAAAAAAAAAEAAAAxAAAAAUAAAAMBwAAIAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAADAAAABgcAAAEAAAAAAAAADwcAAAIAAAAAAAAAAgAAAA4IAAABAAAAAAAAABMIAAABAAAAAAAAAAAAAAAADwAAAAoAAAAAAAAAAAAAHAAAAAMAAAAAAAAAAAAAAP//+BGHAAAAAAAAAAwA6wIABAAEyAEAACIAIBduDwEAAQCMAGAACxdfDwAAAAAAAAAAAAAAAAAAAAAKACwDAAQABF8BNQIABAAE4wGOAQAEAASbAukFOQc4B3QCsQaYC5YLcAVTAxcIFgg9BQMAAAAGAQkBAwEAAMwFPQw6DMAGowLRANEAHgBeAI4CjwIdBGEFJwkmCaQBqQUzCzELCQaDAswAzAAbAF0ARAJFAqEDPwVuCG4IfAGvBwAEAATLBvgSrwcABAAEywb4Eq8HAAQABMsG+BKvBwAEAATLBvgSAAQABAAEAARQEQAEAAQABAAEUBGvBwAEAATLBvgSrwcABAAEywb4Eq8HAAQABMsG+BKvBwAEAATLBvgSrwcABAAEywb4Eq0HAQT+A8kG+BIAAAAAAAAAAAAA+AcABAAEdgZQFCoJAAQABIEFWBuSCAAEAAT0BXAXwQUABAAEqQmADPoGAAQABD8Jgg55BwAEAAQZB/kR4wgABAAE2gWwGPgHAAQABHYGRRT4BwAEAAR2BkUU+AcABAAEdgZFFPgHAAQABHYGRRT4BwAEAAR2BkUU/wMABAAEEgT2EP8DAAQABBIE9hD/AwAEAAQSBPYQ/wMABAAEEgT2EP8DAAQABBIE9hDQ/oQBcAOUKuL+jAFZAxAnEP+jASADbCBE/78B6AJYG3n/3gGwAnAXlP/uAZcC4BWy/wICegJQFOL/HQJLAlwSGgBEAhwCaBBQAG4C8wHYDoAAlgLPAawNuQDIAqgBgAzoAO8ChQG4CxEBHwNyAfAKewGgAz4BYAn0AREIIQgACAAIAAgACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAANABgAagAXABUAIQAKADYBUAB3ADUAHwAUAFMAEQAaAB0AlAGQBckBuQGKApQAXQVSAeEB7gBzAE8AgAEqAAgADAA0AisFMwPtAnkC5wAMA7MAAQF3ACoAHABeAAMAhwDLAB0Dhit/D/YLGgpLA4gOJgWtCgcHVgHHAHQCPAAAAAAAAAAAgAAAAAQABAAEYAoLDyEZuw9+/8n/uA9IEIYAOQBMEAAAAAEFAGv7BwB88QcAN/QDAIiBAAQABAAEAAAAAAAA/f8AAP8fAAEAAAAAAASuAqsB6wF+ApYBGAMAAAAAAAAAAAAAHwA/AF8AfwCfAL8A3wD/AAAAIQBGAGoAigCmAMEA3gD/AAEAAABwAAAAEAAgAEAAYACAAMAAAADh/+T/4f/k/+L/4/8sBDAELwQxBC4EMQQvBIgEAQD/B/8HAAgACPY49joQJwAAAAAAAAAABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgBlANIAAAEAAQABAAEAAQAACgBzANIAAAEAAQABAAEAAWUAZQBzAAEAAQDzAPMACgBGAEoAZABnAJMAmwC+AMcA5ADrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEkAYgBmAG0AmQC8AMYA4gDnAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG8FAARbAwAAAAAAAAAAQwBRAKp96gEAAAAAAAAAAGECrAAAAEsCYwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAgAEAARbAmQAAABDAFMAtX3PAQAAAAAAAAAAZAB8AGsAgwArAPsB/wAiWuhhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIQBHAG0AjACnAMEA3gD/AAAAAAAAAAAAAAAAAAAAAAAAAGQAAABzAAEA8wAAAAAAAAAAAAAAAAAAACEARgBqAIoApgDBAN4A/wA1AD0ASABOAFIAVgBbAGIAaQBwAHYAewCFAI8AkgCUAJcAmACXAJMAiwCDAHwAdwB1AHQAdAB4AH0AhgCKAJAAlwCZAJ4AogCqALAAsACxAKgAoACUAIcAegBkAFgASgBDAD0AOAA2ADQAMQAvAC0AKQAmACUAJgAjAEAAOwAAAP8AAgB8AGsAIlroYQAAAAAAAAAAAAD7Af8AKwBgAp0AAABNAmQAAABgAQAAAACDAAAAAAALAAAAPAAAAP//AAD///////8AAAAAAABBAAAAOAAAAAAAZABkAGQAZAAKAGQAZABkAAAAMgBkAGQAGwABAAAAAAA8AAAAfABrACJa6GEAAAAAAAAAAAAA+wH/ACsAtX3PAQAAAAAAAAAAIlroYQAAfAAAAAAAAAAAAAAAPAAAAAAAIQBGAGoAigCmAMEA3gD/AAAAAAAVAgAEAARbAoEAgQCBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAAAAAAAAAAAAAKAAAA/////wAAAAAKAAAAAAAAAAoAAACw////CgAAAAAhyAEAAAAAAAAAAAAAAAAAAAAAahiAFgAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABwAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAJAAAEGiHACuMAInoABa8AAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAEAAAAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAACAIJADQApqoABjwH0NDQAEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABJSSoAjgMAAA==" - }, - "value_string": "MakerNote\u003cTYPE-ID=[28 00 01 00 03 00 31 00 00 00 74 05 00 00 02 00 03 00 04 00] LEN=(8152) SHA1=[d4154aa7df5474efe7ab38de2595919b9b4cc29f]\u003e" - }, - { - "ifd_path": "IFD/Exif", - "fq_ifd_path": "IFD/Exif", - "ifd_index": 0, - "tag_id": 37510, - "tag_name": "UserComment", - "tag_type_id": 7, - "tag_type_name": "UNDEFINED", - "unit_count": 264, - "value": { - "EncodingType": 3, - "EncodingBytes": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==" - }, - "value_string": "UserComment\u003cSIZE=(256) ENCODING=[UNDEFINED] V=[0 0 0 0 0 0 0 0]... LEN=(256)\u003e" - }, - { - "ifd_path": "IFD/Exif", - "fq_ifd_path": "IFD/Exif", - "ifd_index": 0, - "tag_id": 37520, - "tag_name": "SubSecTime", - "tag_type_id": 2, - "tag_type_name": "ASCII", - "unit_count": 3, - "value": "00", - "value_string": "00" - }, - { - "ifd_path": "IFD/Exif", - "fq_ifd_path": "IFD/Exif", - "ifd_index": 0, - "tag_id": 37521, - "tag_name": "SubSecTimeOriginal", - "tag_type_id": 2, - "tag_type_name": "ASCII", - "unit_count": 3, - "value": "00", - "value_string": "00" - }, - { - "ifd_path": "IFD/Exif", - "fq_ifd_path": "IFD/Exif", - "ifd_index": 0, - "tag_id": 37522, - "tag_name": "SubSecTimeDigitized", - "tag_type_id": 2, - "tag_type_name": "ASCII", - "unit_count": 3, - "value": "00", - "value_string": "00" - }, - { - "ifd_path": "IFD/Exif", - "fq_ifd_path": "IFD/Exif", - "ifd_index": 0, - "tag_id": 40960, - "tag_name": "FlashpixVersion", - "tag_type_id": 7, - "tag_type_name": "UNDEFINED", - "unit_count": 4, - "value": { - "FlashpixVersion": "0100" - }, - "value_string": "0100" - }, - { - "ifd_path": "IFD/Exif", - "fq_ifd_path": "IFD/Exif", - "ifd_index": 0, - "tag_id": 40961, - "tag_name": "ColorSpace", - "tag_type_id": 3, - "tag_type_name": "SHORT", - "unit_count": 1, - "value": [ - 1 - ], - "value_string": "1" - }, - { - "ifd_path": "IFD/Exif", - "fq_ifd_path": "IFD/Exif", - "ifd_index": 0, - "tag_id": 40962, - "tag_name": "PixelXDimension", - "tag_type_id": 3, - "tag_type_name": "SHORT", - "unit_count": 1, - "value": [ - 3840 - ], - "value_string": "3840" - }, - { - "ifd_path": "IFD/Exif", - "fq_ifd_path": "IFD/Exif", - "ifd_index": 0, - "tag_id": 40963, - "tag_name": "PixelYDimension", - "tag_type_id": 3, - "tag_type_name": "SHORT", - "unit_count": 1, - "value": [ - 2560 - ], - "value_string": "2560" - }, - { - "ifd_path": "IFD/Exif", - "fq_ifd_path": "IFD/Exif", - "ifd_index": 0, - "tag_id": 40965, - "tag_name": "InteroperabilityTag", - "tag_type_id": 4, - "tag_type_name": "LONG", - "unit_count": 1, - "value": [ - 9326 - ], - "value_string": "9326" - }, - { - "ifd_path": "IFD/Exif/Iop", - "fq_ifd_path": "IFD/Exif/Iop", - "ifd_index": 0, - "tag_id": 1, - "tag_name": "InteroperabilityIndex", - "tag_type_id": 2, - "tag_type_name": "ASCII", - "unit_count": 4, - "value": "R98", - "value_string": "R98" - }, - { - "ifd_path": "IFD/Exif/Iop", - "fq_ifd_path": "IFD/Exif/Iop", - "ifd_index": 0, - "tag_id": 2, - "tag_name": "InteroperabilityVersion", - "tag_type_id": 7, - "tag_type_name": "UNDEFINED", - "unit_count": 4, - "value": { - "InteropVersion": "0100" - }, - "value_string": "0100" - }, - { - "ifd_path": "IFD/Exif", - "fq_ifd_path": "IFD/Exif", - "ifd_index": 0, - "tag_id": 41486, - "tag_name": "FocalPlaneXResolution", - "tag_type_id": 5, - "tag_type_name": "RATIONAL", - "unit_count": 1, - "value": [ - { - "Numerator": 3840000, - "Denominator": 1461 - } - ], - "value_string": "3840000/1461" - }, - { - "ifd_path": "IFD/Exif", - "fq_ifd_path": "IFD/Exif", - "ifd_index": 0, - "tag_id": 41487, - "tag_name": "FocalPlaneYResolution", - "tag_type_id": 5, - "tag_type_name": "RATIONAL", - "unit_count": 1, - "value": [ - { - "Numerator": 2560000, - "Denominator": 972 - } - ], - "value_string": "2560000/972" - }, - { - "ifd_path": "IFD/Exif", - "fq_ifd_path": "IFD/Exif", - "ifd_index": 0, - "tag_id": 41488, - "tag_name": "FocalPlaneResolutionUnit", - "tag_type_id": 3, - "tag_type_name": "SHORT", - "unit_count": 1, - "value": [ - 2 - ], - "value_string": "2" - }, - { - "ifd_path": "IFD/Exif", - "fq_ifd_path": "IFD/Exif", - "ifd_index": 0, - "tag_id": 41985, - "tag_name": "CustomRendered", - "tag_type_id": 3, - "tag_type_name": "SHORT", - "unit_count": 1, - "value": [ - 0 - ], - "value_string": "0" - }, - { - "ifd_path": "IFD/Exif", - "fq_ifd_path": "IFD/Exif", - "ifd_index": 0, - "tag_id": 41986, - "tag_name": "ExposureMode", - "tag_type_id": 3, - "tag_type_name": "SHORT", - "unit_count": 1, - "value": [ - 0 - ], - "value_string": "0" - }, - { - "ifd_path": "IFD/Exif", - "fq_ifd_path": "IFD/Exif", - "ifd_index": 0, - "tag_id": 41987, - "tag_name": "WhiteBalance", - "tag_type_id": 3, - "tag_type_name": "SHORT", - "unit_count": 1, - "value": [ - 0 - ], - "value_string": "0" - }, - { - "ifd_path": "IFD/Exif", - "fq_ifd_path": "IFD/Exif", - "ifd_index": 0, - "tag_id": 41990, - "tag_name": "SceneCaptureType", - "tag_type_id": 3, - "tag_type_name": "SHORT", - "unit_count": 1, - "value": [ - 0 - ], - "value_string": "0" - }, - { - "ifd_path": "IFD/Exif", - "fq_ifd_path": "IFD/Exif", - "ifd_index": 0, - "tag_id": 42032, - "tag_name": "CameraOwnerName", - "tag_type_id": 2, - "tag_type_name": "ASCII", - "unit_count": 1, - "value": "", - "value_string": "" - }, - { - "ifd_path": "IFD/Exif", - "fq_ifd_path": "IFD/Exif", - "ifd_index": 0, - "tag_id": 42033, - "tag_name": "BodySerialNumber", - "tag_type_id": 2, - "tag_type_name": "ASCII", - "unit_count": 13, - "value": "063024020097", - "value_string": "063024020097" - }, - { - "ifd_path": "IFD/Exif", - "fq_ifd_path": "IFD/Exif", - "ifd_index": 0, - "tag_id": 42034, - "tag_name": "LensSpecification", - "tag_type_id": 5, - "tag_type_name": "RATIONAL", - "unit_count": 4, - "value": [ - { - "Numerator": 16, - "Denominator": 1 - }, - { - "Numerator": 35, - "Denominator": 1 - }, - { - "Numerator": 0, - "Denominator": 1 - }, - { - "Numerator": 0, - "Denominator": 1 - } - ], - "value_string": "16/1..." - }, - { - "ifd_path": "IFD/Exif", - "fq_ifd_path": "IFD/Exif", - "ifd_index": 0, - "tag_id": 42036, - "tag_name": "LensModel", - "tag_type_id": 2, - "tag_type_name": "ASCII", - "unit_count": 22, - "value": "EF16-35mm f/4L IS USM", - "value_string": "EF16-35mm f/4L IS USM" - }, - { - "ifd_path": "IFD/Exif", - "fq_ifd_path": "IFD/Exif", - "ifd_index": 0, - "tag_id": 42037, - "tag_name": "LensSerialNumber", - "tag_type_id": 2, - "tag_type_name": "ASCII", - "unit_count": 11, - "value": "2400001068", - "value_string": "2400001068" - }, - { - "ifd_path": "IFD", - "fq_ifd_path": "IFD", - "ifd_index": 0, - "tag_id": 34853, - "tag_name": "GPSTag", - "tag_type_id": 4, - "tag_type_name": "LONG", - "unit_count": 1, - "value": [ - 9554 - ], - "value_string": "9554" - }, - { - "ifd_path": "IFD/GPSInfo", - "fq_ifd_path": "IFD/GPSInfo", - "ifd_index": 0, - "tag_id": 0, - "tag_name": "GPSVersionID", - "tag_type_id": 1, - "tag_type_name": "BYTE", - "unit_count": 4, - "value": "AgMAAA==", - "value_string": "02 03 00 00" - }, - { - "ifd_path": "IFD", - "fq_ifd_path": "IFD1", - "ifd_index": 1, - "tag_id": 259, - "tag_name": "Compression", - "tag_type_id": 3, - "tag_type_name": "SHORT", - "unit_count": 1, - "value": [ - 6 - ], - "value_string": "6" - }, - { - "ifd_path": "IFD", - "fq_ifd_path": "IFD1", - "ifd_index": 1, - "tag_id": 282, - "tag_name": "XResolution", - "tag_type_id": 5, - "tag_type_name": "RATIONAL", - "unit_count": 1, - "value": [ - { - "Numerator": 72, - "Denominator": 1 - } - ], - "value_string": "72/1" - }, - { - "ifd_path": "IFD", - "fq_ifd_path": "IFD1", - "ifd_index": 1, - "tag_id": 283, - "tag_name": "YResolution", - "tag_type_id": 5, - "tag_type_name": "RATIONAL", - "unit_count": 1, - "value": [ - { - "Numerator": 72, - "Denominator": 1 - } - ], - "value_string": "72/1" - }, - { - "ifd_path": "IFD", - "fq_ifd_path": "IFD1", - "ifd_index": 1, - "tag_id": 296, - "tag_name": "ResolutionUnit", - "tag_type_id": 3, - "tag_type_name": "SHORT", - "unit_count": 1, - "value": [ - 2 - ], - "value_string": "2" - }, - { - "ifd_path": "IFD", - "fq_ifd_path": "IFD1", - "ifd_index": 1, - "tag_id": 513, - "tag_name": "JPEGInterchangeFormat", - "tag_type_id": 4, - "tag_type_name": "LONG", - "unit_count": 1, - "value": [ - 11444 - ], - "value_string": "11444" - }, - { - "ifd_path": "IFD", - "fq_ifd_path": "IFD1", - "ifd_index": 1, - "tag_id": 514, - "tag_name": "JPEGInterchangeFormatLength", - "tag_type_id": 4, - "tag_type_name": "LONG", - "unit_count": 1, - "value": [ - 21491 - ], - "value_string": "21491" - } -] diff --git a/v2/assets/main_test_exif.json b/v2/assets/main_test_exif.json new file mode 100644 index 0000000..9603c7c --- /dev/null +++ b/v2/assets/main_test_exif.json @@ -0,0 +1,909 @@ +[ + { + "ifd_path": "IFD", + "id": 271, + "name": "Make", + "unit_count": 6, + "type_id": 2, + "type_name": "ASCII", + "value": "Canon", + "value_bytes": "Q2Fub24A", + "formatted_first": "Canon", + "formatted": "Canon", + "child_ifd_path": "" + }, + { + "ifd_path": "IFD", + "id": 272, + "name": "Model", + "unit_count": 22, + "type_id": 2, + "type_name": "ASCII", + "value": "Canon EOS 5D Mark III", + "value_bytes": "Q2Fub24gRU9TIDVEIE1hcmsgSUlJAA==", + "formatted_first": "Canon EOS 5D Mark III", + "formatted": "Canon EOS 5D Mark III", + "child_ifd_path": "" + }, + { + "ifd_path": "IFD", + "id": 274, + "name": "Orientation", + "unit_count": 1, + "type_id": 3, + "type_name": "SHORT", + "value": [ + 1 + ], + "value_bytes": "AQA=", + "formatted_first": "1", + "formatted": "[1]", + "child_ifd_path": "" + }, + { + "ifd_path": "IFD", + "id": 282, + "name": "XResolution", + "unit_count": 1, + "type_id": 5, + "type_name": "RATIONAL", + "value": [ + { + "Numerator": 72, + "Denominator": 1 + } + ], + "value_bytes": "SAAAAAEAAAA=", + "formatted_first": "72/1", + "formatted": "[72/1]", + "child_ifd_path": "" + }, + { + "ifd_path": "IFD", + "id": 283, + "name": "YResolution", + "unit_count": 1, + "type_id": 5, + "type_name": "RATIONAL", + "value": [ + { + "Numerator": 72, + "Denominator": 1 + } + ], + "value_bytes": "SAAAAAEAAAA=", + "formatted_first": "72/1", + "formatted": "[72/1]", + "child_ifd_path": "" + }, + { + "ifd_path": "IFD", + "id": 296, + "name": "ResolutionUnit", + "unit_count": 1, + "type_id": 3, + "type_name": "SHORT", + "value": [ + 2 + ], + "value_bytes": "AgA=", + "formatted_first": "2", + "formatted": "[2]", + "child_ifd_path": "" + }, + { + "ifd_path": "IFD", + "id": 306, + "name": "DateTime", + "unit_count": 20, + "type_id": 2, + "type_name": "ASCII", + "value": "2017:12:02 08:18:50", + "value_bytes": "MjAxNzoxMjowMiAwODoxODo1MAA=", + "formatted_first": "2017:12:02 08:18:50", + "formatted": "2017:12:02 08:18:50", + "child_ifd_path": "" + }, + { + "ifd_path": "IFD", + "id": 315, + "name": "Artist", + "unit_count": 1, + "type_id": 2, + "type_name": "ASCII", + "value": "", + "value_bytes": "AA==", + "formatted_first": "", + "formatted": "", + "child_ifd_path": "" + }, + { + "ifd_path": "IFD", + "id": 531, + "name": "YCbCrPositioning", + "unit_count": 1, + "type_id": 3, + "type_name": "SHORT", + "value": [ + 2 + ], + "value_bytes": "AgA=", + "formatted_first": "2", + "formatted": "[2]", + "child_ifd_path": "" + }, + { + "ifd_path": "IFD", + "id": 33432, + "name": "Copyright", + "unit_count": 1, + "type_id": 2, + "type_name": "ASCII", + "value": "", + "value_bytes": "AA==", + "formatted_first": "", + "formatted": "", + "child_ifd_path": "" + }, + { + "ifd_path": "IFD", + "id": 34665, + "name": "ExifTag", + "unit_count": 1, + "type_id": 4, + "type_name": "LONG", + "value": [ + 360 + ], + "value_bytes": "aAEAAA==", + "formatted_first": "360", + "formatted": "[360]", + "child_ifd_path": "IFD/Exif" + }, + { + "ifd_path": "IFD/Exif", + "id": 33434, + "name": "ExposureTime", + "unit_count": 1, + "type_id": 5, + "type_name": "RATIONAL", + "value": [ + { + "Numerator": 1, + "Denominator": 640 + } + ], + "value_bytes": "AQAAAIACAAA=", + "formatted_first": "1/640", + "formatted": "[1/640]", + "child_ifd_path": "" + }, + { + "ifd_path": "IFD/Exif", + "id": 33437, + "name": "FNumber", + "unit_count": 1, + "type_id": 5, + "type_name": "RATIONAL", + "value": [ + { + "Numerator": 4, + "Denominator": 1 + } + ], + "value_bytes": "BAAAAAEAAAA=", + "formatted_first": "4/1", + "formatted": "[4/1]", + "child_ifd_path": "" + }, + { + "ifd_path": "IFD/Exif", + "id": 34850, + "name": "ExposureProgram", + "unit_count": 1, + "type_id": 3, + "type_name": "SHORT", + "value": [ + 4 + ], + "value_bytes": "BAA=", + "formatted_first": "4", + "formatted": "[4]", + "child_ifd_path": "" + }, + { + "ifd_path": "IFD/Exif", + "id": 34855, + "name": "ISOSpeedRatings", + "unit_count": 1, + "type_id": 3, + "type_name": "SHORT", + "value": [ + 1600 + ], + "value_bytes": "QAY=", + "formatted_first": "1600", + "formatted": "[1600]", + "child_ifd_path": "" + }, + { + "ifd_path": "IFD/Exif", + "id": 34864, + "name": "SensitivityType", + "unit_count": 1, + "type_id": 3, + "type_name": "SHORT", + "value": [ + 2 + ], + "value_bytes": "AgA=", + "formatted_first": "2", + "formatted": "[2]", + "child_ifd_path": "" + }, + { + "ifd_path": "IFD/Exif", + "id": 34866, + "name": "RecommendedExposureIndex", + "unit_count": 1, + "type_id": 4, + "type_name": "LONG", + "value": [ + 1600 + ], + "value_bytes": "QAYAAA==", + "formatted_first": "1600", + "formatted": "[1600]", + "child_ifd_path": "" + }, + { + "ifd_path": "IFD/Exif", + "id": 36864, + "name": "ExifVersion", + "unit_count": 4, + "type_id": 7, + "type_name": "UNDEFINED", + "value": { + "ExifVersion": "0230" + }, + "value_bytes": "MDIzMA==", + "formatted_first": "0230", + "formatted": "0230", + "child_ifd_path": "" + }, + { + "ifd_path": "IFD/Exif", + "id": 36867, + "name": "DateTimeOriginal", + "unit_count": 20, + "type_id": 2, + "type_name": "ASCII", + "value": "2017:12:02 08:18:50", + "value_bytes": "MjAxNzoxMjowMiAwODoxODo1MAA=", + "formatted_first": "2017:12:02 08:18:50", + "formatted": "2017:12:02 08:18:50", + "child_ifd_path": "" + }, + { + "ifd_path": "IFD/Exif", + "id": 36868, + "name": "DateTimeDigitized", + "unit_count": 20, + "type_id": 2, + "type_name": "ASCII", + "value": "2017:12:02 08:18:50", + "value_bytes": "MjAxNzoxMjowMiAwODoxODo1MAA=", + "formatted_first": "2017:12:02 08:18:50", + "formatted": "2017:12:02 08:18:50", + "child_ifd_path": "" + }, + { + "ifd_path": "IFD/Exif", + "id": 37121, + "name": "ComponentsConfiguration", + "unit_count": 4, + "type_id": 7, + "type_name": "UNDEFINED", + "value": { + "ConfigurationId": 2, + "ConfigurationBytes": "AQIDAA==" + }, + "value_bytes": "AQIDAA==", + "formatted_first": "Exif9101ComponentsConfiguration\u003cID=[YCBCR] BYTES=[1 2 3 0]\u003e", + "formatted": "Exif9101ComponentsConfiguration\u003cID=[YCBCR] BYTES=[1 2 3 0]\u003e", + "child_ifd_path": "" + }, + { + "ifd_path": "IFD/Exif", + "id": 37377, + "name": "ShutterSpeedValue", + "unit_count": 1, + "type_id": 10, + "type_name": "SRATIONAL", + "value": [ + { + "Numerator": 614400, + "Denominator": 65536 + } + ], + "value_bytes": "AGAJAAAAAQA=", + "formatted_first": "614400/65536", + "formatted": "[614400/65536]", + "child_ifd_path": "" + }, + { + "ifd_path": "IFD/Exif", + "id": 37378, + "name": "ApertureValue", + "unit_count": 1, + "type_id": 5, + "type_name": "RATIONAL", + "value": [ + { + "Numerator": 262144, + "Denominator": 65536 + } + ], + "value_bytes": "AAAEAAAAAQA=", + "formatted_first": "262144/65536", + "formatted": "[262144/65536]", + "child_ifd_path": "" + }, + { + "ifd_path": "IFD/Exif", + "id": 37380, + "name": "ExposureBiasValue", + "unit_count": 1, + "type_id": 10, + "type_name": "SRATIONAL", + "value": [ + { + "Numerator": 0, + "Denominator": 1 + } + ], + "value_bytes": "AAAAAAEAAAA=", + "formatted_first": "0/1", + "formatted": "[0/1]", + "child_ifd_path": "" + }, + { + "ifd_path": "IFD/Exif", + "id": 37383, + "name": "MeteringMode", + "unit_count": 1, + "type_id": 3, + "type_name": "SHORT", + "value": [ + 5 + ], + "value_bytes": "BQA=", + "formatted_first": "5", + "formatted": "[5]", + "child_ifd_path": "" + }, + { + "ifd_path": "IFD/Exif", + "id": 37385, + "name": "Flash", + "unit_count": 1, + "type_id": 3, + "type_name": "SHORT", + "value": [ + 16 + ], + "value_bytes": "EAA=", + "formatted_first": "16", + "formatted": "[16]", + "child_ifd_path": "" + }, + { + "ifd_path": "IFD/Exif", + "id": 37386, + "name": "FocalLength", + "unit_count": 1, + "type_id": 5, + "type_name": "RATIONAL", + "value": [ + { + "Numerator": 16, + "Denominator": 1 + } + ], + "value_bytes": "EAAAAAEAAAA=", + "formatted_first": "16/1", + "formatted": "[16/1]", + "child_ifd_path": "" + }, + { + "ifd_path": "IFD/Exif", + "id": 37500, + "name": "MakerNote", + "unit_count": 8152, + "type_id": 7, + "type_name": "UNDEFINED", + "value": { + "MakerNoteType": "KAABAAMAMQAAAHQFAAACAAMABAA=", + "MakerNoteBytes": "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igCmAMEA3gD/AAEAAABwAAAAEAAgAEAAYACAAMAAAADh/+T/4f/k/+L/4/8sBDAELwQxBC4EMQQvBIgEAQD/B/8HAAgACPY49joQJwAAAAAAAAAABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgBlANIAAAEAAQABAAEAAQAACgBzANIAAAEAAQABAAEAAWUAZQBzAAEAAQDzAPMACgBGAEoAZABnAJMAmwC+AMcA5ADrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEkAYgBmAG0AmQC8AMYA4gDnAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG8FAARbAwAAAAAAAAAAQwBRAKp96gEAAAAAAAAAAGECrAAAAEsCYwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAgAEAARbAmQAAABDAFMAtX3PAQAAAAAAAAAAZAB8AGsAgwArAPsB/wAiWuhhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIQBHAG0AjACnAMEA3gD/AAAAAAAAAAAAAAAAAAAAAAAAAGQAAABzAAEA8wAAAAAAAAAAAAAAAAAAACEARgBqAIoApgDBAN4A/wA1AD0ASABOAFIAVgBbAGIAaQBwAHYAewCFAI8AkgCUAJcAmACXAJMAiwCDAHwAdwB1AHQAdAB4AH0AhgCKAJAAlwCZAJ4AogCqALAAsACxAKgAoACUAIcAegBkAFgASgBDAD0AOAA2ADQAMQAvAC0AKQAmACUAJgAjAEAAOwAAAP8AAgB8AGsAIlroYQAAAAAAAAAAAAD7Af8AKwBgAp0AAABNAmQAAABgAQAAAACDAAAAAAALAAAAPAAAAP//AAD///////8AAAAAAABBAAAAOAAAAAAAZABkAGQAZAAKAGQAZABkAAAAMgBkAGQAGwABAAAAAAA8AAAAfABrACJa6GEAAAAAAAAAAAAA+wH/ACsAtX3PAQAAAAAAAAAAIlroYQAAfAAAAAAAAAAAAAAAPAAAAAAAIQBGAGoAigCmAMEA3gD/AAAAAAAVAgAEAARbAoEAgQCBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAAAAAAAAAAAAAKAAAA/////wAAAAAKAAAAAAAAAAoAAACw////CgAAAAAhyAEAAAAAAAAAAAAAAAAAAAAAahiAFgAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABwAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAJAAAEGiHACuMAInoABa8AAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAEAAAAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAACAIJADQApqoABjwH0NDQAEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABJSSoAjgMAAA==" + }, + "value_bytes": "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igCmAMEA3gD/AAEAAABwAAAAEAAgAEAAYACAAMAAAADh/+T/4f/k/+L/4/8sBDAELwQxBC4EMQQvBIgEAQD/B/8HAAgACPY49joQJwAAAAAAAAAABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgBlANIAAAEAAQABAAEAAQAACgBzANIAAAEAAQABAAEAAWUAZQBzAAEAAQDzAPMACgBGAEoAZABnAJMAmwC+AMcA5ADrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEkAYgBmAG0AmQC8AMYA4gDnAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG8FAARbAwAAAAAAAAAAQwBRAKp96gEAAAAAAAAAAGECrAAAAEsCYwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAgAEAARbAmQAAABDAFMAtX3PAQAAAAAAAAAAZAB8AGsAgwArAPsB/wAiWuhhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIQBHAG0AjACnAMEA3gD/AAAAAAAAAAAAAAAAAAAAAAAAAGQAAABzAAEA8wAAAAAAAAAAAAAAAAAAACEARgBqAIoApgDBAN4A/wA1AD0ASABOAFIAVgBbAGIAaQBwAHYAewCFAI8AkgCUAJcAmACXAJMAiwCDAHwAdwB1AHQAdAB4AH0AhgCKAJAAlwCZAJ4AogCqALAAsACxAKgAoACUAIcAegBkAFgASgBDAD0AOAA2ADQAMQAvAC0AKQAmACUAJgAjAEAAOwAAAP8AAgB8AGsAIlroYQAAAAAAAAAAAAD7Af8AKwBgAp0AAABNAmQAAABgAQAAAACDAAAAAAALAAAAPAAAAP//AAD///////8AAAAAAABBAAAAOAAAAAAAZABkAGQAZAAKAGQAZABkAAAAMgBkAGQAGwABAAAAAAA8AAAAfABrACJa6GEAAAAAAAAAAAAA+wH/ACsAtX3PAQAAAAAAAAAAIlroYQAAfAAAAAAAAAAAAAAAPAAAAAAAIQBGAGoAigCmAMEA3gD/AAAAAAAVAgAEAARbAoEAgQCBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAAAAAAAAAAAAAKAAAA/////wAAAAAKAAAAAAAAAAoAAACw////CgAAAAAhyAEAAAAAAAAAAAAAAAAAAAAAahiAFgAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABwAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAJAAAEGiHACuMAInoABa8AAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAEAAAAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAACAIJADQApqoABjwH0NDQAEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABJSSoAjgMAAA==", + "formatted_first": "MakerNote\u003cTYPE-ID=[28 00 01 00 03 00 31 00 00 00 74 05 00 00 02 00 03 00 04 00] LEN=(8152) SHA1=[d4154aa7df5474efe7ab38de2595919b9b4cc29f]\u003e", + "formatted": "MakerNote\u003cTYPE-ID=[28 00 01 00 03 00 31 00 00 00 74 05 00 00 02 00 03 00 04 00] LEN=(8152) SHA1=[d4154aa7df5474efe7ab38de2595919b9b4cc29f]\u003e", + "child_ifd_path": "" + }, + { + "ifd_path": "IFD/Exif", + "id": 37510, + "name": "UserComment", + "unit_count": 264, + "type_id": 7, + "type_name": "UNDEFINED", + "value": { + "EncodingType": 3, + "EncodingBytes": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==" + }, + "value_bytes": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "formatted_first": "UserComment\u003cSIZE=(256) ENCODING=[UNDEFINED] V=[0 0 0 0 0 0 0 0]... LEN=(256)\u003e", + "formatted": "UserComment\u003cSIZE=(256) ENCODING=[UNDEFINED] V=[0 0 0 0 0 0 0 0]... LEN=(256)\u003e", + "child_ifd_path": "" + }, + { + "ifd_path": "IFD/Exif", + "id": 37520, + "name": "SubSecTime", + "unit_count": 3, + "type_id": 2, + "type_name": "ASCII", + "value": "00", + "value_bytes": "MDAA", + "formatted_first": "00", + "formatted": "00", + "child_ifd_path": "" + }, + { + "ifd_path": "IFD/Exif", + "id": 37521, + "name": "SubSecTimeOriginal", + "unit_count": 3, + "type_id": 2, + "type_name": "ASCII", + "value": "00", + "value_bytes": "MDAA", + "formatted_first": "00", + "formatted": "00", + "child_ifd_path": "" + }, + { + "ifd_path": "IFD/Exif", + "id": 37522, + "name": "SubSecTimeDigitized", + "unit_count": 3, + "type_id": 2, + "type_name": "ASCII", + "value": "00", + "value_bytes": "MDAA", + "formatted_first": "00", + "formatted": "00", + "child_ifd_path": "" + }, + { + "ifd_path": "IFD/Exif", + "id": 40960, + "name": "FlashpixVersion", + "unit_count": 4, + "type_id": 7, + "type_name": "UNDEFINED", + "value": { + "FlashpixVersion": "0100" + }, + "value_bytes": "MDEwMA==", + "formatted_first": "0100", + "formatted": "0100", + "child_ifd_path": "" + }, + { + "ifd_path": "IFD/Exif", + "id": 40961, + "name": "ColorSpace", + "unit_count": 1, + "type_id": 3, + "type_name": "SHORT", + "value": [ + 1 + ], + "value_bytes": "AQA=", + "formatted_first": "1", + "formatted": "[1]", + "child_ifd_path": "" + }, + { + "ifd_path": "IFD/Exif", + "id": 40962, + "name": "PixelXDimension", + "unit_count": 1, + "type_id": 3, + "type_name": "SHORT", + "value": [ + 3840 + ], + "value_bytes": "AA8=", + "formatted_first": "3840", + "formatted": "[3840]", + "child_ifd_path": "" + }, + { + "ifd_path": "IFD/Exif", + "id": 40963, + "name": "PixelYDimension", + "unit_count": 1, + "type_id": 3, + "type_name": "SHORT", + "value": [ + 2560 + ], + "value_bytes": "AAo=", + "formatted_first": "2560", + "formatted": "[2560]", + "child_ifd_path": "" + }, + { + "ifd_path": "IFD/Exif", + "id": 40965, + "name": "InteroperabilityTag", + "unit_count": 1, + "type_id": 4, + "type_name": "LONG", + "value": [ + 9326 + ], + "value_bytes": "biQAAA==", + "formatted_first": "9326", + "formatted": "[9326]", + "child_ifd_path": "IFD/Exif/Iop" + }, + { + "ifd_path": "IFD/Exif/Iop", + "id": 1, + "name": "InteroperabilityIndex", + "unit_count": 4, + "type_id": 2, + "type_name": "ASCII", + "value": "R98", + "value_bytes": "Ujk4AA==", + "formatted_first": "R98", + "formatted": "R98", + "child_ifd_path": "" + }, + { + "ifd_path": "IFD/Exif/Iop", + "id": 2, + "name": "InteroperabilityVersion", + "unit_count": 4, + "type_id": 7, + "type_name": "UNDEFINED", + "value": { + "InteropVersion": "0100" + }, + "value_bytes": "MDEwMA==", + "formatted_first": "0100", + "formatted": "0100", + "child_ifd_path": "" + }, + { + "ifd_path": "IFD/Exif", + "id": 41486, + "name": "FocalPlaneXResolution", + "unit_count": 1, + "type_id": 5, + "type_name": "RATIONAL", + "value": [ + { + "Numerator": 3840000, + "Denominator": 1461 + } + ], + "value_bytes": "AJg6ALUFAAA=", + "formatted_first": "3840000/1461", + "formatted": "[3840000/1461]", + "child_ifd_path": "" + }, + { + "ifd_path": "IFD/Exif", + "id": 41487, + "name": "FocalPlaneYResolution", + "unit_count": 1, + "type_id": 5, + "type_name": "RATIONAL", + "value": [ + { + "Numerator": 2560000, + "Denominator": 972 + } + ], + "value_bytes": "ABAnAMwDAAA=", + "formatted_first": "2560000/972", + "formatted": "[2560000/972]", + "child_ifd_path": "" + }, + { + "ifd_path": "IFD/Exif", + "id": 41488, + "name": "FocalPlaneResolutionUnit", + "unit_count": 1, + "type_id": 3, + "type_name": "SHORT", + "value": [ + 2 + ], + "value_bytes": "AgA=", + "formatted_first": "2", + "formatted": "[2]", + "child_ifd_path": "" + }, + { + "ifd_path": "IFD/Exif", + "id": 41985, + "name": "CustomRendered", + "unit_count": 1, + "type_id": 3, + "type_name": "SHORT", + "value": [ + 0 + ], + "value_bytes": "AAA=", + "formatted_first": "0", + "formatted": "[0]", + "child_ifd_path": "" + }, + { + "ifd_path": "IFD/Exif", + "id": 41986, + "name": "ExposureMode", + "unit_count": 1, + "type_id": 3, + "type_name": "SHORT", + "value": [ + 0 + ], + "value_bytes": "AAA=", + "formatted_first": "0", + "formatted": "[0]", + "child_ifd_path": "" + }, + { + "ifd_path": "IFD/Exif", + "id": 41987, + "name": "WhiteBalance", + "unit_count": 1, + "type_id": 3, + "type_name": "SHORT", + "value": [ + 0 + ], + "value_bytes": "AAA=", + "formatted_first": "0", + "formatted": "[0]", + "child_ifd_path": "" + }, + { + "ifd_path": "IFD/Exif", + "id": 41990, + "name": "SceneCaptureType", + "unit_count": 1, + "type_id": 3, + "type_name": "SHORT", + "value": [ + 0 + ], + "value_bytes": "AAA=", + "formatted_first": "0", + "formatted": "[0]", + "child_ifd_path": "" + }, + { + "ifd_path": "IFD/Exif", + "id": 42032, + "name": "CameraOwnerName", + "unit_count": 1, + "type_id": 2, + "type_name": "ASCII", + "value": "", + "value_bytes": "AA==", + "formatted_first": "", + "formatted": "", + "child_ifd_path": "" + }, + { + "ifd_path": "IFD/Exif", + "id": 42033, + "name": "BodySerialNumber", + "unit_count": 13, + "type_id": 2, + "type_name": "ASCII", + "value": "063024020097", + "value_bytes": "MDYzMDI0MDIwMDk3AA==", + "formatted_first": "063024020097", + "formatted": "063024020097", + "child_ifd_path": "" + }, + { + "ifd_path": "IFD/Exif", + "id": 42034, + "name": "LensSpecification", + "unit_count": 4, + "type_id": 5, + "type_name": "RATIONAL", + "value": [ + { + "Numerator": 16, + "Denominator": 1 + }, + { + "Numerator": 35, + "Denominator": 1 + }, + { + "Numerator": 0, + "Denominator": 1 + }, + { + "Numerator": 0, + "Denominator": 1 + } + ], + "value_bytes": "EAAAAAEAAAAjAAAAAQAAAAAAAAABAAAAAAAAAAEAAAA=", + "formatted_first": "16/1...", + "formatted": "[16/1 35/1 0/1 0/1]", + "child_ifd_path": "" + }, + { + "ifd_path": "IFD/Exif", + "id": 42036, + "name": "LensModel", + "unit_count": 22, + "type_id": 2, + "type_name": "ASCII", + "value": "EF16-35mm f/4L IS USM", + "value_bytes": "RUYxNi0zNW1tIGYvNEwgSVMgVVNNAA==", + "formatted_first": "EF16-35mm f/4L IS USM", + "formatted": "EF16-35mm f/4L IS USM", + "child_ifd_path": "" + }, + { + "ifd_path": "IFD/Exif", + "id": 42037, + "name": "LensSerialNumber", + "unit_count": 11, + "type_id": 2, + "type_name": "ASCII", + "value": "2400001068", + "value_bytes": "MjQwMDAwMTA2OAA=", + "formatted_first": "2400001068", + "formatted": "2400001068", + "child_ifd_path": "" + }, + { + "ifd_path": "IFD", + "id": 34853, + "name": "GPSTag", + "unit_count": 1, + "type_id": 4, + "type_name": "LONG", + "value": [ + 9554 + ], + "value_bytes": "UiUAAA==", + "formatted_first": "9554", + "formatted": "[9554]", + "child_ifd_path": "IFD/GPSInfo" + }, + { + "ifd_path": "IFD/GPSInfo", + "id": 0, + "name": "GPSVersionID", + "unit_count": 4, + "type_id": 1, + "type_name": "BYTE", + "value": "AgMAAA==", + "value_bytes": "AgMAAA==", + "formatted_first": "02 03 00 00", + "formatted": "02 03 00 00", + "child_ifd_path": "" + }, + { + "ifd_path": "IFD1", + "id": 259, + "name": "Compression", + "unit_count": 1, + "type_id": 3, + "type_name": "SHORT", + "value": [ + 6 + ], + "value_bytes": "BgA=", + "formatted_first": "6", + "formatted": "[6]", + "child_ifd_path": "" + }, + { + "ifd_path": "IFD1", + "id": 282, + "name": "XResolution", + "unit_count": 1, + "type_id": 5, + "type_name": "RATIONAL", + "value": [ + { + "Numerator": 72, + "Denominator": 1 + } + ], + "value_bytes": "SAAAAAEAAAA=", + "formatted_first": "72/1", + "formatted": "[72/1]", + "child_ifd_path": "" + }, + { + "ifd_path": "IFD1", + "id": 283, + "name": "YResolution", + "unit_count": 1, + "type_id": 5, + "type_name": "RATIONAL", + "value": [ + { + "Numerator": 72, + "Denominator": 1 + } + ], + "value_bytes": "SAAAAAEAAAA=", + "formatted_first": "72/1", + "formatted": "[72/1]", + "child_ifd_path": "" + }, + { + "ifd_path": "IFD1", + "id": 296, + "name": "ResolutionUnit", + "unit_count": 1, + "type_id": 3, + "type_name": "SHORT", + "value": [ + 2 + ], + "value_bytes": "AgA=", + "formatted_first": "2", + "formatted": "[2]", + "child_ifd_path": "" + }, + { + "ifd_path": "IFD1", + "id": 513, + "name": "JPEGInterchangeFormat", + "unit_count": 1, + "type_id": 4, + "type_name": "LONG", + "value": [ + 11444 + ], + "value_bytes": "tCwAAA==", + "formatted_first": "11444", + "formatted": "[11444]", + "child_ifd_path": "" + }, + { + "ifd_path": "IFD1", + "id": 514, + "name": "JPEGInterchangeFormatLength", + "unit_count": 1, + "type_id": 4, + "type_name": "LONG", + "value": [ + 21491 + ], + "value_bytes": "81MAAA==", + "formatted_first": "21491", + "formatted": "[21491]", + "child_ifd_path": "" + } +] diff --git a/v2/exif-read-tool/main.go b/v2/exif-read-tool/main.go index 7379127..3fef894 100644 --- a/v2/exif-read-tool/main.go +++ b/v2/exif-read-tool/main.go @@ -148,11 +148,6 @@ func main() { } else { thumbnailTags := 0 for _, entry := range entries { - if (entry.TagId == exif.ThumbnailOffsetTagId || entry.TagId == exif.ThumbnailSizeTagId) && entry.IfdPath == exif.ThumbnailFqIfdPath { - thumbnailTags++ - continue - } - fmt.Printf("IFD-PATH=[%s] ID=(0x%04x) NAME=[%s] COUNT=(%d) TYPE=[%s] VALUE=[%s]\n", entry.IfdPath, entry.TagId, entry.TagName, entry.UnitCount, entry.TagTypeName, entry.Formatted) } diff --git a/v2/exif-read-tool/main_test.go b/v2/exif-read-tool/main_test.go index 37b4491..4072d23 100644 --- a/v2/exif-read-tool/main_test.go +++ b/v2/exif-read-tool/main_test.go @@ -41,65 +41,64 @@ func TestMain(t *testing.T) { expected := `IFD-PATH=[IFD] ID=(0x010f) NAME=[Make] COUNT=(6) TYPE=[ASCII] VALUE=[Canon] IFD-PATH=[IFD] ID=(0x0110) NAME=[Model] COUNT=(22) TYPE=[ASCII] VALUE=[Canon EOS 5D Mark III] -IFD-PATH=[IFD] ID=(0x0112) NAME=[Orientation] COUNT=(1) TYPE=[SHORT] VALUE=[1] -IFD-PATH=[IFD] ID=(0x011a) NAME=[XResolution] COUNT=(1) TYPE=[RATIONAL] VALUE=[72/1] -IFD-PATH=[IFD] ID=(0x011b) NAME=[YResolution] COUNT=(1) TYPE=[RATIONAL] VALUE=[72/1] -IFD-PATH=[IFD] ID=(0x0128) NAME=[ResolutionUnit] COUNT=(1) TYPE=[SHORT] VALUE=[2] +IFD-PATH=[IFD] ID=(0x0112) NAME=[Orientation] COUNT=(1) TYPE=[SHORT] VALUE=[[1]] +IFD-PATH=[IFD] ID=(0x011a) NAME=[XResolution] COUNT=(1) TYPE=[RATIONAL] VALUE=[[72/1]] +IFD-PATH=[IFD] ID=(0x011b) NAME=[YResolution] COUNT=(1) TYPE=[RATIONAL] VALUE=[[72/1]] +IFD-PATH=[IFD] ID=(0x0128) NAME=[ResolutionUnit] COUNT=(1) TYPE=[SHORT] VALUE=[[2]] IFD-PATH=[IFD] ID=(0x0132) NAME=[DateTime] COUNT=(20) TYPE=[ASCII] VALUE=[2017:12:02 08:18:50] IFD-PATH=[IFD] ID=(0x013b) NAME=[Artist] COUNT=(1) TYPE=[ASCII] VALUE=[] -IFD-PATH=[IFD] ID=(0x0213) NAME=[YCbCrPositioning] COUNT=(1) TYPE=[SHORT] VALUE=[2] +IFD-PATH=[IFD] ID=(0x0213) NAME=[YCbCrPositioning] COUNT=(1) TYPE=[SHORT] VALUE=[[2]] IFD-PATH=[IFD] ID=(0x8298) NAME=[Copyright] COUNT=(1) TYPE=[ASCII] VALUE=[] -IFD-PATH=[IFD] ID=(0x8769) NAME=[ExifTag] COUNT=(1) TYPE=[LONG] VALUE=[360] -IFD-PATH=[IFD/Exif] ID=(0x829a) NAME=[ExposureTime] COUNT=(1) TYPE=[RATIONAL] VALUE=[1/640] -IFD-PATH=[IFD/Exif] ID=(0x829d) NAME=[FNumber] COUNT=(1) TYPE=[RATIONAL] VALUE=[4/1] -IFD-PATH=[IFD/Exif] ID=(0x8822) NAME=[ExposureProgram] COUNT=(1) TYPE=[SHORT] VALUE=[4] -IFD-PATH=[IFD/Exif] ID=(0x8827) NAME=[ISOSpeedRatings] COUNT=(1) TYPE=[SHORT] VALUE=[1600] -IFD-PATH=[IFD/Exif] ID=(0x8830) NAME=[SensitivityType] COUNT=(1) TYPE=[SHORT] VALUE=[2] -IFD-PATH=[IFD/Exif] ID=(0x8832) NAME=[RecommendedExposureIndex] COUNT=(1) TYPE=[LONG] VALUE=[1600] +IFD-PATH=[IFD] ID=(0x8769) NAME=[ExifTag] COUNT=(1) TYPE=[LONG] VALUE=[[360]] +IFD-PATH=[IFD/Exif] ID=(0x829a) NAME=[ExposureTime] COUNT=(1) TYPE=[RATIONAL] VALUE=[[1/640]] +IFD-PATH=[IFD/Exif] ID=(0x829d) NAME=[FNumber] COUNT=(1) TYPE=[RATIONAL] VALUE=[[4/1]] +IFD-PATH=[IFD/Exif] ID=(0x8822) NAME=[ExposureProgram] COUNT=(1) TYPE=[SHORT] VALUE=[[4]] +IFD-PATH=[IFD/Exif] ID=(0x8827) NAME=[ISOSpeedRatings] COUNT=(1) TYPE=[SHORT] VALUE=[[1600]] +IFD-PATH=[IFD/Exif] ID=(0x8830) NAME=[SensitivityType] COUNT=(1) TYPE=[SHORT] VALUE=[[2]] +IFD-PATH=[IFD/Exif] ID=(0x8832) NAME=[RecommendedExposureIndex] COUNT=(1) TYPE=[LONG] VALUE=[[1600]] IFD-PATH=[IFD/Exif] ID=(0x9000) NAME=[ExifVersion] COUNT=(4) TYPE=[UNDEFINED] VALUE=[0230] IFD-PATH=[IFD/Exif] ID=(0x9003) NAME=[DateTimeOriginal] COUNT=(20) TYPE=[ASCII] VALUE=[2017:12:02 08:18:50] IFD-PATH=[IFD/Exif] ID=(0x9004) NAME=[DateTimeDigitized] COUNT=(20) TYPE=[ASCII] VALUE=[2017:12:02 08:18:50] IFD-PATH=[IFD/Exif] ID=(0x9101) NAME=[ComponentsConfiguration] COUNT=(4) TYPE=[UNDEFINED] VALUE=[Exif9101ComponentsConfiguration] -IFD-PATH=[IFD/Exif] ID=(0x9201) NAME=[ShutterSpeedValue] COUNT=(1) TYPE=[SRATIONAL] VALUE=[614400/65536] -IFD-PATH=[IFD/Exif] ID=(0x9202) NAME=[ApertureValue] COUNT=(1) TYPE=[RATIONAL] VALUE=[262144/65536] -IFD-PATH=[IFD/Exif] ID=(0x9204) NAME=[ExposureBiasValue] COUNT=(1) TYPE=[SRATIONAL] VALUE=[0/1] -IFD-PATH=[IFD/Exif] ID=(0x9207) NAME=[MeteringMode] COUNT=(1) TYPE=[SHORT] VALUE=[5] -IFD-PATH=[IFD/Exif] ID=(0x9209) NAME=[Flash] COUNT=(1) TYPE=[SHORT] VALUE=[16] -IFD-PATH=[IFD/Exif] ID=(0x920a) NAME=[FocalLength] COUNT=(1) TYPE=[RATIONAL] VALUE=[16/1] +IFD-PATH=[IFD/Exif] ID=(0x9201) NAME=[ShutterSpeedValue] COUNT=(1) TYPE=[SRATIONAL] VALUE=[[614400/65536]] +IFD-PATH=[IFD/Exif] ID=(0x9202) NAME=[ApertureValue] COUNT=(1) TYPE=[RATIONAL] VALUE=[[262144/65536]] +IFD-PATH=[IFD/Exif] ID=(0x9204) NAME=[ExposureBiasValue] COUNT=(1) TYPE=[SRATIONAL] VALUE=[[0/1]] +IFD-PATH=[IFD/Exif] ID=(0x9207) NAME=[MeteringMode] COUNT=(1) TYPE=[SHORT] VALUE=[[5]] +IFD-PATH=[IFD/Exif] ID=(0x9209) NAME=[Flash] COUNT=(1) TYPE=[SHORT] VALUE=[[16]] +IFD-PATH=[IFD/Exif] ID=(0x920a) NAME=[FocalLength] COUNT=(1) TYPE=[RATIONAL] VALUE=[[16/1]] IFD-PATH=[IFD/Exif] ID=(0x927c) NAME=[MakerNote] COUNT=(8152) TYPE=[UNDEFINED] VALUE=[MakerNote] IFD-PATH=[IFD/Exif] ID=(0x9286) NAME=[UserComment] COUNT=(264) TYPE=[UNDEFINED] VALUE=[UserComment] IFD-PATH=[IFD/Exif] ID=(0x9290) NAME=[SubSecTime] COUNT=(3) TYPE=[ASCII] VALUE=[00] IFD-PATH=[IFD/Exif] ID=(0x9291) NAME=[SubSecTimeOriginal] COUNT=(3) TYPE=[ASCII] VALUE=[00] IFD-PATH=[IFD/Exif] ID=(0x9292) NAME=[SubSecTimeDigitized] COUNT=(3) TYPE=[ASCII] VALUE=[00] IFD-PATH=[IFD/Exif] ID=(0xa000) NAME=[FlashpixVersion] COUNT=(4) TYPE=[UNDEFINED] VALUE=[0100] -IFD-PATH=[IFD/Exif] ID=(0xa001) NAME=[ColorSpace] COUNT=(1) TYPE=[SHORT] VALUE=[1] -IFD-PATH=[IFD/Exif] ID=(0xa002) NAME=[PixelXDimension] COUNT=(1) TYPE=[SHORT] VALUE=[3840] -IFD-PATH=[IFD/Exif] ID=(0xa003) NAME=[PixelYDimension] COUNT=(1) TYPE=[SHORT] VALUE=[2560] -IFD-PATH=[IFD/Exif] ID=(0xa005) NAME=[InteroperabilityTag] COUNT=(1) TYPE=[LONG] VALUE=[9326] +IFD-PATH=[IFD/Exif] ID=(0xa001) NAME=[ColorSpace] COUNT=(1) TYPE=[SHORT] VALUE=[[1]] +IFD-PATH=[IFD/Exif] ID=(0xa002) NAME=[PixelXDimension] COUNT=(1) TYPE=[SHORT] VALUE=[[3840]] +IFD-PATH=[IFD/Exif] ID=(0xa003) NAME=[PixelYDimension] COUNT=(1) TYPE=[SHORT] VALUE=[[2560]] +IFD-PATH=[IFD/Exif] ID=(0xa005) NAME=[InteroperabilityTag] COUNT=(1) TYPE=[LONG] VALUE=[[9326]] IFD-PATH=[IFD/Exif/Iop] ID=(0x0001) NAME=[InteroperabilityIndex] COUNT=(4) TYPE=[ASCII] VALUE=[R98] IFD-PATH=[IFD/Exif/Iop] ID=(0x0002) NAME=[InteroperabilityVersion] COUNT=(4) TYPE=[UNDEFINED] VALUE=[0100] -IFD-PATH=[IFD/Exif] ID=(0xa20e) NAME=[FocalPlaneXResolution] COUNT=(1) TYPE=[RATIONAL] VALUE=[3840000/1461] -IFD-PATH=[IFD/Exif] ID=(0xa20f) NAME=[FocalPlaneYResolution] COUNT=(1) TYPE=[RATIONAL] VALUE=[2560000/972] -IFD-PATH=[IFD/Exif] ID=(0xa210) NAME=[FocalPlaneResolutionUnit] COUNT=(1) TYPE=[SHORT] VALUE=[2] -IFD-PATH=[IFD/Exif] ID=(0xa401) NAME=[CustomRendered] COUNT=(1) TYPE=[SHORT] VALUE=[0] -IFD-PATH=[IFD/Exif] ID=(0xa402) NAME=[ExposureMode] COUNT=(1) TYPE=[SHORT] VALUE=[0] -IFD-PATH=[IFD/Exif] ID=(0xa403) NAME=[WhiteBalance] COUNT=(1) TYPE=[SHORT] VALUE=[0] -IFD-PATH=[IFD/Exif] ID=(0xa406) NAME=[SceneCaptureType] COUNT=(1) TYPE=[SHORT] VALUE=[0] +IFD-PATH=[IFD/Exif] ID=(0xa20e) NAME=[FocalPlaneXResolution] COUNT=(1) TYPE=[RATIONAL] VALUE=[[3840000/1461]] +IFD-PATH=[IFD/Exif] ID=(0xa20f) NAME=[FocalPlaneYResolution] COUNT=(1) TYPE=[RATIONAL] VALUE=[[2560000/972]] +IFD-PATH=[IFD/Exif] ID=(0xa210) NAME=[FocalPlaneResolutionUnit] COUNT=(1) TYPE=[SHORT] VALUE=[[2]] +IFD-PATH=[IFD/Exif] ID=(0xa401) NAME=[CustomRendered] COUNT=(1) TYPE=[SHORT] VALUE=[[0]] +IFD-PATH=[IFD/Exif] ID=(0xa402) NAME=[ExposureMode] COUNT=(1) TYPE=[SHORT] VALUE=[[0]] +IFD-PATH=[IFD/Exif] ID=(0xa403) NAME=[WhiteBalance] COUNT=(1) TYPE=[SHORT] VALUE=[[0]] +IFD-PATH=[IFD/Exif] ID=(0xa406) NAME=[SceneCaptureType] COUNT=(1) TYPE=[SHORT] VALUE=[[0]] IFD-PATH=[IFD/Exif] ID=(0xa430) NAME=[CameraOwnerName] COUNT=(1) TYPE=[ASCII] VALUE=[] IFD-PATH=[IFD/Exif] ID=(0xa431) NAME=[BodySerialNumber] COUNT=(13) TYPE=[ASCII] VALUE=[063024020097] -IFD-PATH=[IFD/Exif] ID=(0xa432) NAME=[LensSpecification] COUNT=(4) TYPE=[RATIONAL] VALUE=[16/1...] +IFD-PATH=[IFD/Exif] ID=(0xa432) NAME=[LensSpecification] COUNT=(4) TYPE=[RATIONAL] VALUE=[[16/1 35/1 0/1 0/1]] IFD-PATH=[IFD/Exif] ID=(0xa434) NAME=[LensModel] COUNT=(22) TYPE=[ASCII] VALUE=[EF16-35mm f/4L IS USM] IFD-PATH=[IFD/Exif] ID=(0xa435) NAME=[LensSerialNumber] COUNT=(11) TYPE=[ASCII] VALUE=[2400001068] -IFD-PATH=[IFD] ID=(0x8825) NAME=[GPSTag] COUNT=(1) TYPE=[LONG] VALUE=[9554] +IFD-PATH=[IFD] ID=(0x8825) NAME=[GPSTag] COUNT=(1) TYPE=[LONG] VALUE=[[9554]] IFD-PATH=[IFD/GPSInfo] ID=(0x0000) NAME=[GPSVersionID] COUNT=(4) TYPE=[BYTE] VALUE=[02 03 00 00] -IFD-PATH=[IFD] ID=(0x0103) NAME=[Compression] COUNT=(1) TYPE=[SHORT] VALUE=[6] -IFD-PATH=[IFD] ID=(0x011a) NAME=[XResolution] COUNT=(1) TYPE=[RATIONAL] VALUE=[72/1] -IFD-PATH=[IFD] ID=(0x011b) NAME=[YResolution] COUNT=(1) TYPE=[RATIONAL] VALUE=[72/1] -IFD-PATH=[IFD] ID=(0x0128) NAME=[ResolutionUnit] COUNT=(1) TYPE=[SHORT] VALUE=[2] -IFD-PATH=[IFD] ID=(0x0201) NAME=[JPEGInterchangeFormat] COUNT=(1) TYPE=[LONG] VALUE=[11444] -IFD-PATH=[IFD] ID=(0x0202) NAME=[JPEGInterchangeFormatLength] COUNT=(1) TYPE=[LONG] VALUE=[21491] +IFD-PATH=[IFD1] ID=(0x0103) NAME=[Compression] COUNT=(1) TYPE=[SHORT] VALUE=[[6]] +IFD-PATH=[IFD1] ID=(0x011a) NAME=[XResolution] COUNT=(1) TYPE=[RATIONAL] VALUE=[[72/1]] +IFD-PATH=[IFD1] ID=(0x011b) NAME=[YResolution] COUNT=(1) TYPE=[RATIONAL] VALUE=[[72/1]] +IFD-PATH=[IFD1] ID=(0x0128) NAME=[ResolutionUnit] COUNT=(1) TYPE=[SHORT] VALUE=[[2]] +IFD-PATH=[IFD1] ID=(0x0201) NAME=[JPEGInterchangeFormat] COUNT=(1) TYPE=[LONG] VALUE=[[11444]] +IFD-PATH=[IFD1] ID=(0x0202) NAME=[JPEGInterchangeFormatLength] COUNT=(1) TYPE=[LONG] VALUE=[[21491]] -EXIF blob is approximately (32935) bytes. ` if actual != expected { @@ -134,7 +133,7 @@ func TestMainJson(t *testing.T) { // Read and parse expected data. - jsonFilepath := path.Join(assetsPath, "exif_read.json") + jsonFilepath := path.Join(assetsPath, "main_test_exif.json") expectedRaw, err := ioutil.ReadFile(jsonFilepath) log.PanicIf(err) @@ -144,8 +143,24 @@ func TestMainJson(t *testing.T) { err = json.Unmarshal(expectedRaw, &expected) log.PanicIf(err) - if reflect.DeepEqual(actual, expected) == false { - t.Fatalf("Output not as expected:\nACTUAL:\n%s\nEXPECTED:\n%s", actualRaw, expectedRaw) + // if reflect.DeepEqual(actual, expected) == false { + // t.Fatalf("Output not as expected:\nACTUAL:\n%s\nEXPECTED:\n%s", actualRaw, expectedRaw) + // } + + for i, tagInfo := range actual { + if reflect.DeepEqual(tagInfo, expected[i]) == false { + actualBytes, err := json.MarshalIndent(tagInfo, "", " ") + log.PanicIf(err) + + expectedBytes, err := json.MarshalIndent(expected[i], "", " ") + log.PanicIf(err) + + t.Fatalf("Tag (%d) not as expected:\nACTUAL:\n%s\nEXPECTED:\n%s", i, string(actualBytes), string(expectedBytes)) + } + } + + if len(actual) != len(expected) { + t.Fatalf("Actual tags not same length as expected tags.") } }