News:

2023-03-15 Major improvements to the new Geolocation feature

Main Menu

ImageDataMD5

Started by cocteau, March 22, 2023, 10:07:00 AM

Previous topic - Next topic

cocteau

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?

cocteau

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

Phil Harvey

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
...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).

cocteau

#3
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

Phil Harvey

Oh.  And the currently available version of ExifTool doesn't include RST marker segments in the ImageDataMD5.  Version 12.59 will fix this.

- Phil
...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).

Phil Harvey

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
...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).

cocteau

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

Phil Harvey

Looks good:

> exiftool canon_eos_7d_39.jpg -exiftoolversion -imagedatamd5
ExifTool Version Number         : 12.59
Image Data MD5                  : 13cab397371e79b092c5859fb20eed33

- Phil
...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).

cocteau

Quote from: Phil Harvey on March 24, 2023, 02:09:18 PMLooks good: 13cab397371e79b092c5859fb20eed33

 :) Yeah, my calculations are correct.

cocteau

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....

cocteau

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

Phil Harvey

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
...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).

Phil Harvey

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 for storing the ImageDataMD5 value in a file.

- Phil
...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).

Marsu42

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!

Phil Harvey

I'll look into adding JXL support.

- Phil
...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).