Main Menu

Extracting Thumbs

Started by ratmalwer, September 10, 2022, 04:36:06 PM

Previous topic - Next topic

ratmalwer

Hi
I added some thumbnails with Exiftool.
Now I see some Applications do display them ok - but my own script I extract the EXIF does not find them.

So my Question: What is added to the Exif - or how can I modify my script?
It is some years that I really was into this subject, but ow somehow I do not find the logic.


Here the first lines of the Imagedata (in Hex). I cannot find how I can get to the added data in a secure way.
Can someone point me to the right direction - or the accurate point in documentation?

FFD8FFE000104A46494600010101012C012C0000
FFE1297C457869660000
4D4D002A000000080004      --> offset 8   --> count 4
011A0005000000010000003E
011B00050000000100000046
012800030000000100020000
021300030000000100010000

0000004E0000012C00000001   --> whats that ?  some Header?
0000012C000000010006    --> offset 1???  --> count 6??

010300030000000100060000
011A0005000000010000009C
011B000500000001000000A4
012800030000000100020000
0201000400000001000000AC
0202000400000001000028C8

0000000000000048000000010000004800000001FFD8FFE000104A46494600010101012C012C0000....

Help is really appreciated.



StarGeek

No idea without seeing the file or your code.  But all I would do would be to run exiftool with the -v3 (-verbose3) option
exiftool -v3 file.jpg

and probably also the -htmlDump option.
exiftool -htmldump >file.html file.jpg

The first one will break down each piece of the file data.  With the second, you would load the resulting file into a browser and it will give even more details.

The -v3 option would look like this
  ExifToolVersion = 12.44
  FileName = Test4.jpg
  Directory = y:/!temp
  FileSize = 445710
  FileModifyDate = 1662823729.96272
  FileAccessDate = 1662844061.81491
  FileCreateDate = 946756800
  FilePermissions = 33206
  FileType = JPEG
  FileTypeExtension = JPG
  MIMEType = image/jpeg
JPEG APP1 (246 bytes):
    0006: 45 78 69 66 00 00 4d 4d 00 2a 00 00 00 08 00 06 [Exif..MM.*......]
    0016: 01 1a 00 05 00 00 00 01 00 00 00 56 01 1b 00 05 [...........V....]
    0026: 00 00 00 01 00 00 00 5e 01 28 00 03 00 00 00 01 [.......^.(......]
    0036: 00 02 00 00 01 32 00 02 00 00 00 14 00 00 00 66 [.....2.........f]
    0046: 02 13 00 03 00 00 00 01 00 01 00 00 87 69 00 04 [.............i..]
    0056: 00 00 00 01 00 00 00 7a 00 00 00 00 00 00 00 48 [.......z.......H]
    0066: 00 00 00 01 00 00 00 48 00 00 00 01 32 30 32 32 [.......H....2022]
    [snip 134 bytes]
  ExifByteOrder = MM
  + [IFD0 directory with 6 entries]
  | 0)  XResolution = 72 (72/1)
  |     - Tag 0x011a (8 bytes, rational64u[1]):
  |         0062: 00 00 00 48 00 00 00 01                         [...H....]
  | 1)  YResolution = 72 (72/1)
  |     - Tag 0x011b (8 bytes, rational64u[1]):
  |         006a: 00 00 00 48 00 00 00 01                         [...H....]
  | 2)  ResolutionUnit = 2
  |     - Tag 0x0128 (2 bytes, int16u[1]):
  |         0036: 00 02                                           [..]
  | 3)  ModifyDate = 2022:09:10 14:07:41
  |     - Tag 0x0132 (20 bytes, string[20]):
  |         0072: 32 30 32 32 3a 30 39 3a 31 30 20 31 34 3a 30 37 [2022:09:10 14:07]
  |         0082: 3a 34 31 00                                     [:41.]
  | 4)  YCbCrPositioning = 1
  |     - Tag 0x0213 (2 bytes, int16u[1]):
  |         004e: 00 01                                           [..]
  | 5)  ExifOffset (SubDirectory) -->
  |     - Tag 0x8769 (4 bytes, int32u[1]):
  |         005a: 00 00 00 7a                                     [...z]
  | + [ExifIFD directory with 6 entries]
  | | 0)  ExifVersion = 0232
  | |     - Tag 0x9000 (4 bytes, undef[4]):
  | |         0090: 30 32 33 32                                     [0232]
  | | 1)  DateTimeOriginal = 2022:09:10 14:07:41
  | |     - Tag 0x9003 (20 bytes, string[20]):
  | |         00d4: 32 30 32 32 3a 30 39 3a 31 30 20 31 34 3a 30 37 [2022:09:10 14:07]
  | |         00e4: 3a 34 31 00                                     [:41.]
  | | 2)  CreateDate = 2022:09:10 14:07:41
  | |     - Tag 0x9004 (20 bytes, string[20]):
  | |         00e8: 32 30 32 32 3a 30 39 3a 31 30 20 31 34 3a 30 37 [2022:09:10 14:07]
  | |         00f8: 3a 34 31 00                                     [:41.]
  | | 3)  ComponentsConfiguration = 1 2 3 0
  | |     - Tag 0x9101 (4 bytes, undef[4] read as int8u[4]):
  | |         00b4: 01 02 03 00                                     [....]
  | | 4)  FlashpixVersion = 0100
  | |     - Tag 0xa000 (4 bytes, undef[4]):
  | |         00c0: 30 31 30 30                                     [0100]
  | | 5)  ColorSpace = 65535
  | |     - Tag 0xa001 (2 bytes, int16u[1]):
  | |         00cc: ff ff     

And -htmldump like this
* Did you read FAQ #3 and use the command listed there?
* Please use the Code button for exiftool code/output.
 
* Please include your OS, Exiftool version, and type of file you're processing (MP4, JPG, etc).

ratmalwer

Thanks StarGeek

that helped so far. I did not know this options of Exiftool.

It looks as if I have a problem with the Next IFD! (detecting it).
So I go into the documentation again.

Phil Harvey

I wish I could give thumbs up for a good post.  StarGeek's animations are just amazing to me. :)

- 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 ($).

StarGeek

Thanks.

It's actually pretty easy due to a open source Window program called ShareX.  I can select a region to record and when I'm done it will automatically upload a gif to Imgur with a link in the clipboard that I can paste here.

The next time I make one will be even better because I finally found a decent program which will display any mouse clicks or when I hit something like Control+A, so it will be even more obvious what I'm doing.
* Did you read FAQ #3 and use the command listed there?
* Please use the Code button for exiftool code/output.
 
* Please include your OS, Exiftool version, and type of file you're processing (MP4, JPG, etc).