Thumbnail Database format description
The format is the same as the ID3v2 format customized to store thumbnails. |
The structure of the format is consisting of a first frame ID CATA that stores the catalog of thumbnails in a string list (text) format:
D:\card.jpg //* File name with full path
41639 //* File size - for simplicity the file size is checked whether the file had undergone changes
300 //* Width of the original file, -1 for non image files
250 //* Height of the original file, -1 for non image files
D:\ace.png //* The following files...
And an "unlimited" number of THUM frames containing thumbnails, in most cases JPGs that must be in the same order as given in the CATA frame, that is in the catalog.
An "unlimited" number of SESC frames containing sample data cache for the audio streams, in the same same order as in the CATA.
The SESC frame is probably compressed, the THUM is not (as it is .jpg), but could be.
The file is in most cases called: "Thumbs Filesystem Dialogs.db"
If Filesystem Dialogs is configured to use high quality resampler filter, then the quality of image thumbnails is much better then in Thumbs.db.
Becouse full path is stored the database can be everywhere (per folder, 1 global database, etc. - using 1 large database has bad impact on performance though).
Feel free to add more thumbnail formats (frame formats) if you like.
If you like this software please register Filesystem Dialogs.
Delphi TThumbDatabase class
function AddThumb(FullFileName: String; Image: TStream; Width, Height: Int64; FrameID: String; Compress: Boolean; ForceUpdate: Boolean): Boolean;
function GetThumb(FileName: String; var Image: TStream; var Width, Height: Int64; var FrameID: String): Boolean;
function GetThumbInfo(FileName: String; var Width, Height: Int64; var FrameID: String): Boolean;
function SetThumb(FullFileName: String; Image: TStream; Width, Height: Int64; Force: Boolean): Boolean;
function GetThumbIndex(FullFileNameWithPath: String): Int64;
function Load(FileName: String): Boolean;
function Save(FileName: String): Boolean;
See the download page.
Forum: Filesystem Dialogs