Environment:
Software Version: voidImageViewer 1.0.0.15
OS: Windows 10/11
Description:
I encountered a "Failed to load image" error when trying to open a specific PNG file saved from the Douyin (TikTok) app.
Root Cause Analysis:
I performed a hex dump of the file and found that it is not a standard PNG. The file header clearly indicates it is an HEIC image wrapped with a .png extension.
The hex dump of the file header is as follows:
00 00 00 1C 66 74 79 70 68 65 69 63 00 00 00 00 6D 69 66 31...
Offset 0x04: 66 74 79 70 (ftyp)
Offset 0x08: 68 65 69 63 (heic)
Offset 0x10: 6D 69 66 31 (mif1)
It appears the Douyin app saves images in the HEIF/HEIC container format but forces the .png file extension. Since voidImageViewer relies on native Windows APIs and expects a standard PNG signature (89 50 4E 47), it fails to decode this ISOBMFF-based HEIC file.
Suggestion:
It would be great if voidImageViewer could implement a fallback mechanism to detect the ftyp heic signature and attempt to decode it using the system's built-in HEIF codec (similar to how Windows Photos handles it), or at least provide a more specific error message indicating a format mismatch.
Environment:
Software Version: voidImageViewer 1.0.0.15
OS: Windows 10/11
Description:
I encountered a "Failed to load image" error when trying to open a specific PNG file saved from the Douyin (TikTok) app.
Root Cause Analysis:
I performed a hex dump of the file and found that it is not a standard PNG. The file header clearly indicates it is an HEIC image wrapped with a .png extension.
The hex dump of the file header is as follows:
00 00 00 1C 66 74 79 70 68 65 69 63 00 00 00 00 6D 69 66 31...
Offset 0x04: 66 74 79 70 (ftyp)
Offset 0x08: 68 65 69 63 (heic)
Offset 0x10: 6D 69 66 31 (mif1)
It appears the Douyin app saves images in the HEIF/HEIC container format but forces the .png file extension. Since voidImageViewer relies on native Windows APIs and expects a standard PNG signature (89 50 4E 47), it fails to decode this ISOBMFF-based HEIC file.
Suggestion:
It would be great if voidImageViewer could implement a fallback mechanism to detect the ftyp heic signature and attempt to decode it using the system's built-in HEIF codec (similar to how Windows Photos handles it), or at least provide a more specific error message indicating a format mismatch.