Hello Phil Harvey,
I have a question about creating the ImageDataMD5.
JPEG: TEMP\TMPIMAGE.JPG
SIZE: 1229204 bytes
SOI: 0x00000000 (0)
SOS: 0x0000024F (591)
RES: 0 (no other marker...)
EOI: 0x0012C192 (1229202)
I understood that the pure ImageData are in the range: 0x0000025D - 0x0012C192 ( 605 - 1229202 )
exiftool.exe -s2 -ImageDataMD5 "TEMP\TMPIMAGE.JPG"
ImageDataMD5: ab35195148a888e564002024ffb1c9a8
my MD5 ranges:
MD5 0-1229204 bcabecf491421180aa1ce5c70a0c9ca9 (FULL JPEG)
MD5 591-1229204 9664f104310effb2015ca641f10b1380 (SOS to END of JPEG)
MD5 605-1229202 df58dcb19ab82f326ae2f22254243838 (SOS+Header+HeaderLength to EOI)
why are my MD5s wrong?
Now I used the JPEG example ExifTool.jpg from Image-ExifTool-12.58.tar.gz...
exiftool.exe -s2 -ImageDataMD5# "ExifTool.jpg"
ImageDataMD5: ebbead72ee8921b665a64cc73b1f8331
JPEG: ExifTool.jpg
SIZE: 25766
FILEMD5: B760E71C50E07776346524564B263DA1
SOI: 0x00000000 0
SOS: 0x0000569E 22174
IMGDATA: 0x000056AC 22188
RES: 0
EOI: 0x000056AF 22191
DATAMD5: 68E27D5D19FC450F0972DB6350C4A947
DATAMD5 = Range From 22188 to 22191
Interesting that you are trying to reproduce this. I didn't expect anyone to do that. The ExifTool md5 doesn't include the JPEG markers within the data. Is this a problem? It was just fastest to do it this way since this data was already loaded into buffers in this fashion.
- Phil
Before there was ImageDataMD5, I used exiftool to put in my XMP:OriginalMMD5 (Image Unique MediaMD5).
The aim was: to create unique JPEGS WITHOUT metadata and to use the MD5 file from them.
* first version: exiftool.exe -all= -o "TMPIMAGE.JPG" "SOURCE.JPG"
* second version: exiftool.exe -all= -adobe:all= -o "TMPIMAGE.JPG" "SOURCE.JPG"
* third version: exiftool.exe -all= -adobe:all= -commonifd0= -o "TMPIMAGE.JPG" "SOURCE.JPG"
* But because there are also JPEGS with JFIF: exiftool.exe -all= -adobe:all= -commonifd0= -JFIF:all= -o "TMPIMAGE.JPG" "SOURCE.JPG"
from the generated "TMPIMAGE.JPG" a FileMD5.
Problem: Progressive JPEGS.
because of this:
1PASS: jpegtran.exe -copy none -outfile "TMPIMAGE.JPG" "SOURCE.JPG"
2PASS: exiftool.exe -all= -adobe:all= -commonifd0= -JFIF:all= "TMPIMAGE.JPG"
3PASS: FileMD5 from "TMPIMAGE.JPG"
this order works great. And now there is ImageDataMD5, where something is wrong (especially with progressive JPEGs)
A little more detail tomorrow, I have to go to the Matrix first. :)
ps: German>English Google Translate
Oh. And the currently available version of ExifTool doesn't include RST marker segments in the ImageDataMD5. Version 12.59 will fix this.
- Phil
OK. Since I'm making a change in ImageDataMD5 for JPEG's in version 12.59 anyway, I'll go the extra mile to change the algorithm to give the same MD5 as you would get by taking all of the image data from the SOS to the EOI, including the SOS marker but not the EOI marker (ie. the same block as the "JPEG Image Data" seen in the ExifTool -htmldump output). It won't be quite as efficient to do it this way, but the speed penalty should be minimal.
- Phil
Thanks Phil for the feedback.
I just did some tests.
Unfortunately, it is not yet possible to use ImageDataMD5 to determine Unique-JPEG's (ImageData).
For this, the ImageData would have to be decoded. But more on that later.
--------------------------------------------------------
So that we use the same images:
https://www.photographyblog.com/reviews/canon_eos_7d_review#sample_images
eg: canon_eos_7d_39.jpg // (FILEMD5:DB3B9081EFACB46E7E51C93BE98B495E)
Because my MD5 are different from Exiftool-ImageDataMD5, I compared the -htmlDump0 (for Absolute Offsets).
[JPEG Image Data] shows me 8167031 bytes. I have to assume that you are using the range from SOS(0x000085D9) to EOI(0x007D2450).
ImageDataMD5: 6DE9B99891548C710B367A81BA3F6E44
My MD5 in the same range: 13CAB397371E79B092C5859FB20EED33
Looks good:
> exiftool canon_eos_7d_39.jpg -exiftoolversion -imagedatamd5
ExifTool Version Number : 12.59
Image Data MD5 : 13cab397371e79b092c5859fb20eed33
- Phil
Quote from: Phil Harvey on March 24, 2023, 02:09:18 PMLooks good: 13cab397371e79b092c5859fb20eed33
:) Yeah, my calculations are correct.
I have NEVER understood why it is allowed to change original images. Especially not in RAW (if you break it's your own fault if you do that).
But then came Adobe and the DNG format, which can be RAW (e.g. mobile phone), but also re-import with AdobeDNG (RAW or JPEG as content).
The best solution for me is still an extra XMP file.
what the hell...
Theme Unique:
There are quite a few programs that find duplicate images (some even WITHOUT meta data or by visual inspection (decoding of the image)). Unfortunately often wrong.
My idea with JPEG/DNG was to remove all meta data (create a clean image) and use the FILE-MD5 (later SHA256) from it.
So that I could test my idea, I changed the meta data (ExifTool, exiv2, jhead, jpegoptim, jpegtran ...)
Unfortunately, I have not yet found a program that creates a real clean image.
Therefore my way (as I wrote above): ORIGINAL > jpegtran > exiftool > CHECKSUM
Create LOSSLESS test files:
JPEGTRAN, version 9e 16-Jan-2022 https://jpegclub.org/jpegtran.zip
Switches (names may be abbreviated):
-copy all Copy all extra markers
-copy none Copy no extra markers from source file
-optimize Optimize Huffman table (smaller file, but slow compression)
-progressive Create progressive JPEG file
-outfile name Specify name for output file
jpegtran.exe -copy all -outfile "canon_eos_7d_39_JPEGTRAN_ALL.jpg" "canon_eos_7d_39.jpg"
jpegtran.exe -copy none -outfile "canon_eos_7d_39_JPEGTRAN_NONE.jpg" "canon_eos_7d_39.jpg"
jpegtran.exe -copy all -optimize -outfile "canon_eos_7d_39_JPEGTRAN_ALL_OPT.jpg" "canon_eos_7d_39.jpg"
jpegtran.exe -copy none -optimize -outfile "canon_eos_7d_39_JPEGTRAN_NONE_OPT.jpg" "canon_eos_7d_39.jpg"
jpegtran.exe -copy all -progressive -outfile "canon_eos_7d_39_JPEGTRAN_PROG_ALL.jpg" "canon_eos_7d_39.jpg"
jpegtran.exe -copy none -progressive -outfile "canon_eos_7d_39_JPEGTRAN_PROG_NONE.jpg" "canon_eos_7d_39.jpg"
jpegtran.exe -copy all -progressive -optimize -outfile "canon_eos_7d_39_JPEGTRAN_PROG_ALL_OPT.jpg" "canon_eos_7d_39.jpg"
jpegtran.exe -copy none -progressive -optimize -outfile "canon_eos_7d_39_JPEGTRAN_PROG_NONE_OPT.jpg" "canon_eos_7d_39.jpg"
Evaluation:
JPEGFILE: canon_eos_7d_39.jpg
JPEGSIZE: 8201298
FILEMD5: DB3B9081EFACB46E7E51C93BE98B495E
SOS: 0x000085D9 34265
MEDIADATA: 0x000085E7 34279
RES: 0
EOI: 0x007D2450 8201296
MEDIADATASIZE: 8167017
MEDIADATAMD5: E0D431145E8C9E16AFCDB4732A09FAC7
SOS-EOI_SIZE: 8167031
SOS-EOI_MD5: 13CAB397371E79B092C5859FB20EED33
--------------------------------------------------------
JPEGFILE: canon_eos_7d_39_JPEGTRAN_ALL.jpg
JPEGSIZE: 8201314
FILEMD5: 3A7B6AD157144E6A6C480B507CA7AE25
SOS: 0x000085E9 34281
MEDIADATA: 0x000085F7 34295
RES: 0
EOI: 0x007D2460 8201312
MEDIADATASIZE: 8167017
MEDIADATAMD5: E0D431145E8C9E16AFCDB4732A09FAC7
SOS-EOI_SIZE: 8167031
SOS-EOI_MD5: 13CAB397371E79B092C5859FB20EED33
--------------------------------------------------------
JPEGFILE: canon_eos_7d_39_JPEGTRAN_ALL_OPT.jpg
JPEGSIZE: 7968961
FILEMD5: 6C296B40803B70A9E2B7ADAB2FB65A8D
SOS: 0x00008538 34104
MEDIADATA: 0x00008546 34118
RES: 0
EOI: 0x007998BF 7968959
MEDIADATASIZE: 7934841
MEDIADATAMD5: 65E64633DC41C868B42106C80B36BDE6
SOS-EOI_SIZE: 7934855
SOS-EOI_MD5: 36E5522A0C0A61AFB30E0D59D6AE6953
--------------------------------------------------------
JPEGFILE: canon_eos_7d_39_JPEGTRAN_NONE.jpg
JPEGSIZE: 8167642
FILEMD5: 3250975F7EDED9EB0A82D35DBF75D75F
SOS: 0x00000261 609
MEDIADATA: 0x0000026F 623
RES: 0
EOI: 0x007CA0D8 8167640
MEDIADATASIZE: 8167017
MEDIADATAMD5: E0D431145E8C9E16AFCDB4732A09FAC7
SOS-EOI_SIZE: 8167031
SOS-EOI_MD5: 13CAB397371E79B092C5859FB20EED33
--------------------------------------------------------
JPEGFILE: canon_eos_7d_39_JPEGTRAN_NONE_OPT.jpg
JPEGSIZE: 7935289
FILEMD5: 2CAC05F40099E87E4F9982B638CA83A3
SOS: 0x000001B0 432
MEDIADATA: 0x000001BE 446
RES: 0
EOI: 0x00791537 7935287
MEDIADATASIZE: 7934841
MEDIADATAMD5: 65E64633DC41C868B42106C80B36BDE6
SOS-EOI_SIZE: 7934855
SOS-EOI_MD5: 36E5522A0C0A61AFB30E0D59D6AE6953
--------------------------------------------------------
JPEGFILE: canon_eos_7d_39_JPEGTRAN_PROG_ALL.jpg
JPEGSIZE: 7518589
FILEMD5: F3DCD02421EB835F191651FF1BD2ECD0
SOS: 0x00008478 33912
SOS: 0x00081D88 531848
SOS: 0x001351FD 1266173
SOS: 0x001C2B52 1846098
SOS: 0x0022FB89 2292617
SOS: 0x00351F4E 3481422
SOS: 0x0047643B 4678715
SOS: 0x004876E2 4749026
SOS: 0x004E6E82 5140098
SOS: 0x00536BA6 5467046
EOI: 0x0072B97B 7518587
ERROR: MEDIADATA OFFSET
--------------------------------------------------------
JPEGFILE: canon_eos_7d_39_JPEGTRAN_PROG_ALL_OPT.jpg
JPEGSIZE: 7518589
FILEMD5: F3DCD02421EB835F191651FF1BD2ECD0
SOS: 0x00008478 33912
SOS: 0x00081D88 531848
SOS: 0x001351FD 1266173
SOS: 0x001C2B52 1846098
SOS: 0x0022FB89 2292617
SOS: 0x00351F4E 3481422
SOS: 0x0047643B 4678715
SOS: 0x004876E2 4749026
SOS: 0x004E6E82 5140098
SOS: 0x00536BA6 5467046
EOI: 0x0072B97B 7518587
ERROR: MEDIADATA OFFSET
--------------------------------------------------------
JPEGFILE: canon_eos_7d_39_JPEGTRAN_PROG_NONE.jpg
JPEGSIZE: 7484917
FILEMD5: 648EC951F1C7B1FBEB29A6DA75FE48D3
SOS: 0x000000F0 240
SOS: 0x00079A00 498176
SOS: 0x0012CE75 1232501
SOS: 0x001BA7CA 1812426
SOS: 0x00227801 2258945
SOS: 0x00349BC6 3447750
SOS: 0x0046E0B3 4645043
SOS: 0x0047F35A 4715354
SOS: 0x004DEAFA 5106426
SOS: 0x0052E81E 5433374
EOI: 0x007235F3 7484915
ERROR: MEDIADATA OFFSET
--------------------------------------------------------
JPEGFILE: canon_eos_7d_39_JPEGTRAN_PROG_NONE_OPT.jpg
JPEGSIZE: 7484917
FILEMD5: 648EC951F1C7B1FBEB29A6DA75FE48D3
SOS: 0x000000F0 240
SOS: 0x00079A00 498176
SOS: 0x0012CE75 1232501
SOS: 0x001BA7CA 1812426
SOS: 0x00227801 2258945
SOS: 0x00349BC6 3447750
SOS: 0x0046E0B3 4645043
SOS: 0x0047F35A 4715354
SOS: 0x004DEAFA 5106426
SOS: 0x0052E81E 5433374
EOI: 0x007235F3 7484915
ERROR: MEDIADATA OFFSET
--------------------------------------------------------
Because there are still errors, -optimize and -progressive, I need a second, possibly third pass....
comes later....
Now for the multi-pass analysis:
as already described above, because there are still errors.
1PASS: jpegtran.exe -copy none -outfile "TMPIMAGE.JPG" "SOURCE.JPG"
2PASS: exiftool.exe -all= -adobe:all= -commonifd0= -JFIF:all= "TMPIMAGE.JPG"
So far I hope it's enough. And yes: the picture is the same!
--------------------------------------------------------
JPEGFILE: canon_eos_7d_39.jpg
JPEGSIZE: 8201298
FILEMD5: DB3B9081EFACB46E7E51C93BE98B495E
SOS: 0x000085D9 34265
MEDIADATA: 0x000085E7 34279
RES: 0
EOI: 0x007D2450 8201296
MEDIADATASIZE: 8167017
MEDIADATAMD5: E0D431145E8C9E16AFCDB4732A09FAC7
SOS-EOI_SIZE: 8167031
SOS-EOI_MD5: 13CAB397371E79B092C5859FB20EED33
*NEXT-MULTI-CLEAN-PASS*
JPEGFILE: canon_eos_7d_39_CLEAN_JPEGTRAN_EXIFTOOL.JPG
JPEGSIZE: 8167624
FILEMD5: 80DC72955CBE2EE22AEB8C0FBFFCE83F
SOS: 0x0000024F 591
MEDIADATA: 0x0000025D 605
RES: 0
EOI: 0x007CA0C6 8167622
MEDIADATASIZE: 8167017
MEDIADATAMD5: E0D431145E8C9E16AFCDB4732A09FAC7
SOS-EOI_SIZE: 8167031
SOS-EOI_MD5: 13CAB397371E79B092C5859FB20EED33
--------------------------------------------------------
JPEGFILE: canon_eos_7d_39_JPEGTRAN_ALL.jpg
JPEGSIZE: 8201314
FILEMD5: 3A7B6AD157144E6A6C480B507CA7AE25
SOS: 0x000085E9 34281
MEDIADATA: 0x000085F7 34295
RES: 0
EOI: 0x007D2460 8201312
MEDIADATASIZE: 8167017
MEDIADATAMD5: E0D431145E8C9E16AFCDB4732A09FAC7
SOS-EOI_SIZE: 8167031
SOS-EOI_MD5: 13CAB397371E79B092C5859FB20EED33
*NEXT-MULTI-CLEAN-PASS*
JPEGFILE: canon_eos_7d_39_JPEGTRAN_ALL_CLEAN_JPEGTRAN_EXIFTOOL.JPG
JPEGSIZE: 8167624
FILEMD5: 80DC72955CBE2EE22AEB8C0FBFFCE83F
SOS: 0x0000024F 591
MEDIADATA: 0x0000025D 605
RES: 0
EOI: 0x007CA0C6 8167622
MEDIADATASIZE: 8167017
MEDIADATAMD5: E0D431145E8C9E16AFCDB4732A09FAC7
SOS-EOI_SIZE: 8167031
SOS-EOI_MD5: 13CAB397371E79B092C5859FB20EED33
--------------------------------------------------------
JPEGFILE: canon_eos_7d_39_JPEGTRAN_ALL_OPT.jpg
JPEGSIZE: 7968961
FILEMD5: 6C296B40803B70A9E2B7ADAB2FB65A8D
SOS: 0x00008538 34104
MEDIADATA: 0x00008546 34118
RES: 0
EOI: 0x007998BF 7968959
MEDIADATASIZE: 7934841
MEDIADATAMD5: 65E64633DC41C868B42106C80B36BDE6
SOS-EOI_SIZE: 7934855
SOS-EOI_MD5: 36E5522A0C0A61AFB30E0D59D6AE6953
*NEXT-MULTI-CLEAN-PASS*
JPEGFILE: canon_eos_7d_39_JPEGTRAN_ALL_OPT_CLEAN_JPEGTRAN_EXIFTOOL.JPG
JPEGSIZE: 8167624
FILEMD5: 80DC72955CBE2EE22AEB8C0FBFFCE83F
SOS: 0x0000024F 591
MEDIADATA: 0x0000025D 605
RES: 0
EOI: 0x007CA0C6 8167622
MEDIADATASIZE: 8167017
MEDIADATAMD5: E0D431145E8C9E16AFCDB4732A09FAC7
SOS-EOI_SIZE: 8167031
SOS-EOI_MD5: 13CAB397371E79B092C5859FB20EED33
--------------------------------------------------------
JPEGFILE: canon_eos_7d_39_JPEGTRAN_NONE.jpg
JPEGSIZE: 8167642
FILEMD5: 3250975F7EDED9EB0A82D35DBF75D75F
SOS: 0x00000261 609
MEDIADATA: 0x0000026F 623
RES: 0
EOI: 0x007CA0D8 8167640
MEDIADATASIZE: 8167017
MEDIADATAMD5: E0D431145E8C9E16AFCDB4732A09FAC7
SOS-EOI_SIZE: 8167031
SOS-EOI_MD5: 13CAB397371E79B092C5859FB20EED33
*NEXT-MULTI-CLEAN-PASS*
JPEGFILE: canon_eos_7d_39_JPEGTRAN_NONE_CLEAN_JPEGTRAN_EXIFTOOL.JPG
JPEGSIZE: 8167624
FILEMD5: 80DC72955CBE2EE22AEB8C0FBFFCE83F
SOS: 0x0000024F 591
MEDIADATA: 0x0000025D 605
RES: 0
EOI: 0x007CA0C6 8167622
MEDIADATASIZE: 8167017
MEDIADATAMD5: E0D431145E8C9E16AFCDB4732A09FAC7
SOS-EOI_SIZE: 8167031
SOS-EOI_MD5: 13CAB397371E79B092C5859FB20EED33
--------------------------------------------------------
JPEGFILE: canon_eos_7d_39_JPEGTRAN_NONE_OPT.jpg
JPEGSIZE: 7935289
FILEMD5: 2CAC05F40099E87E4F9982B638CA83A3
SOS: 0x000001B0 432
MEDIADATA: 0x000001BE 446
RES: 0
EOI: 0x00791537 7935287
MEDIADATASIZE: 7934841
MEDIADATAMD5: 65E64633DC41C868B42106C80B36BDE6
SOS-EOI_SIZE: 7934855
SOS-EOI_MD5: 36E5522A0C0A61AFB30E0D59D6AE6953
*NEXT-MULTI-CLEAN-PASS*
JPEGFILE: canon_eos_7d_39_JPEGTRAN_NONE_OPT_CLEAN_JPEGTRAN_EXIFTOOL.JPG
JPEGSIZE: 8167624
FILEMD5: 80DC72955CBE2EE22AEB8C0FBFFCE83F
SOS: 0x0000024F 591
MEDIADATA: 0x0000025D 605
RES: 0
EOI: 0x007CA0C6 8167622
MEDIADATASIZE: 8167017
MEDIADATAMD5: E0D431145E8C9E16AFCDB4732A09FAC7
SOS-EOI_SIZE: 8167031
SOS-EOI_MD5: 13CAB397371E79B092C5859FB20EED33
--------------------------------------------------------
JPEGFILE: canon_eos_7d_39_JPEGTRAN_PROG_ALL.jpg
JPEGSIZE: 7518589
FILEMD5: F3DCD02421EB835F191651FF1BD2ECD0
SOS: 0x00008478 33912
SOS: 0x00081D88 531848
SOS: 0x001351FD 1266173
SOS: 0x001C2B52 1846098
SOS: 0x0022FB89 2292617
SOS: 0x00351F4E 3481422
SOS: 0x0047643B 4678715
SOS: 0x004876E2 4749026
SOS: 0x004E6E82 5140098
SOS: 0x00536BA6 5467046
EOI: 0x0072B97B 7518587
ERROR: MEDIADATA OFFSET
*NEXT-MULTI-CLEAN-PASS*
JPEGFILE: canon_eos_7d_39_JPEGTRAN_PROG_ALL_CLEAN_JPEGTRAN_EXIFTOOL.JPG
JPEGSIZE: 8167624
FILEMD5: 80DC72955CBE2EE22AEB8C0FBFFCE83F
SOS: 0x0000024F 591
MEDIADATA: 0x0000025D 605
RES: 0
EOI: 0x007CA0C6 8167622
MEDIADATASIZE: 8167017
MEDIADATAMD5: E0D431145E8C9E16AFCDB4732A09FAC7
SOS-EOI_SIZE: 8167031
SOS-EOI_MD5: 13CAB397371E79B092C5859FB20EED33
--------------------------------------------------------
JPEGFILE: canon_eos_7d_39_JPEGTRAN_PROG_ALL_OPT.jpg
JPEGSIZE: 7518589
FILEMD5: F3DCD02421EB835F191651FF1BD2ECD0
SOS: 0x00008478 33912
SOS: 0x00081D88 531848
SOS: 0x001351FD 1266173
SOS: 0x001C2B52 1846098
SOS: 0x0022FB89 2292617
SOS: 0x00351F4E 3481422
SOS: 0x0047643B 4678715
SOS: 0x004876E2 4749026
SOS: 0x004E6E82 5140098
SOS: 0x00536BA6 5467046
EOI: 0x0072B97B 7518587
ERROR: MEDIADATA OFFSET
*NEXT-MULTI-CLEAN-PASS*
JPEGFILE: canon_eos_7d_39_JPEGTRAN_PROG_ALL_OPT_CLEAN_JPEGTRAN_EXIFTOOL.JPG
JPEGSIZE: 8167624
FILEMD5: 80DC72955CBE2EE22AEB8C0FBFFCE83F
SOS: 0x0000024F 591
MEDIADATA: 0x0000025D 605
RES: 0
EOI: 0x007CA0C6 8167622
MEDIADATASIZE: 8167017
MEDIADATAMD5: E0D431145E8C9E16AFCDB4732A09FAC7
SOS-EOI_SIZE: 8167031
SOS-EOI_MD5: 13CAB397371E79B092C5859FB20EED33
--------------------------------------------------------
JPEGFILE: canon_eos_7d_39_JPEGTRAN_PROG_NONE.jpg
JPEGSIZE: 7484917
FILEMD5: 648EC951F1C7B1FBEB29A6DA75FE48D3
SOS: 0x000000F0 240
SOS: 0x00079A00 498176
SOS: 0x0012CE75 1232501
SOS: 0x001BA7CA 1812426
SOS: 0x00227801 2258945
SOS: 0x00349BC6 3447750
SOS: 0x0046E0B3 4645043
SOS: 0x0047F35A 4715354
SOS: 0x004DEAFA 5106426
SOS: 0x0052E81E 5433374
EOI: 0x007235F3 7484915
ERROR: MEDIADATA OFFSET
*NEXT-MULTI-CLEAN-PASS*
JPEGFILE: canon_eos_7d_39_JPEGTRAN_PROG_NONE_CLEAN_JPEGTRAN_EXIFTOOL.JPG
JPEGSIZE: 8167624
FILEMD5: 80DC72955CBE2EE22AEB8C0FBFFCE83F
SOS: 0x0000024F 591
MEDIADATA: 0x0000025D 605
RES: 0
EOI: 0x007CA0C6 8167622
MEDIADATASIZE: 8167017
MEDIADATAMD5: E0D431145E8C9E16AFCDB4732A09FAC7
SOS-EOI_SIZE: 8167031
SOS-EOI_MD5: 13CAB397371E79B092C5859FB20EED33
--------------------------------------------------------
JPEGFILE: canon_eos_7d_39_JPEGTRAN_PROG_NONE_OPT.jpg
JPEGSIZE: 7484917
FILEMD5: 648EC951F1C7B1FBEB29A6DA75FE48D3
SOS: 0x000000F0 240
SOS: 0x00079A00 498176
SOS: 0x0012CE75 1232501
SOS: 0x001BA7CA 1812426
SOS: 0x00227801 2258945
SOS: 0x00349BC6 3447750
SOS: 0x0046E0B3 4645043
SOS: 0x0047F35A 4715354
SOS: 0x004DEAFA 5106426
SOS: 0x0052E81E 5433374
EOI: 0x007235F3 7484915
ERROR: MEDIADATA OFFSET
*NEXT-MULTI-CLEAN-PASS*
JPEGFILE: canon_eos_7d_39_JPEGTRAN_PROG_NONE_OPT_CLEAN_JPEGTRAN_EXIFTOOL.JPG
JPEGSIZE: 8167624
FILEMD5: 80DC72955CBE2EE22AEB8C0FBFFCE83F
SOS: 0x0000024F 591
MEDIADATA: 0x0000025D 605
RES: 0
EOI: 0x007CA0C6 8167622
MEDIADATASIZE: 8167017
MEDIADATAMD5: E0D431145E8C9E16AFCDB4732A09FAC7
SOS-EOI_SIZE: 8167031
SOS-EOI_MD5: 13CAB397371E79B092C5859FB20EED33
--------------------------------------------------------
Understood everything? :D
Quote from: cocteau on March 24, 2023, 05:10:30 PMUnderstood everything? :D
Not at all, but I don't think I have time to try to understand what you are doing. Just let me know if any of this has an impact on ExifTool.
- Phil
ExifTool 12.59 is now available with the updated ImageDataMD5 logic. I've also expanded the list of file types supported with this feature, and added an XMP-et:OriginalImageMD5 tag (https://exiftool.org/TagNames/XMP.html#ExifTool) for storing the ImageDataMD5 value in a file.
- Phil
Quote from: Phil Harvey on March 28, 2023, 02:18:26 PMI've also expanded the list of file types supported with this feature
Now that AVIF is covered, would you consider adding ImageDataMD5 capability for JPEG-XL? I'm asking because it has become my favorite image format. WebP seems to be working already. Thanks!
I'll look into adding JXL support.
- Phil