The problem is not that the pixel data for the icon image is uncompressed (this is indeed possible). However, the encoding of the pixel data inside the icon sequence is incorrect (encapsulated instead of uncompressed).
Here's the relevant dump from the original file:
Code: Select all
(0088,0200) SQ (Sequence with explicit length #=1) # 3466, 1 IconImageSequence
(fffe,e000) na (Item with explicit length #=9) # 3458, 1 Item
(0028,0002) US 1 # 2, 1 SamplesPerPixel
(0028,0004) CS [MONOCHROME2] # 12, 1 PhotometricInterpretation
(0028,0010) US 64 # 2, 1 Rows
(0028,0011) US 52 # 2, 1 Columns
(0028,0100) US 8 # 2, 1 BitsAllocated
(0028,0101) US 8 # 2, 1 BitsStored
(0028,0102) US 7 # 2, 1 HighBit
(0028,0103) US 0 # 2, 1 PixelRepresentation
(7fe0,0010) OB (PixelSequence #=2) # u/l, 1 PixelData
(fffe,e000) pi 00\00\00\00 # 4, 1 Item
(fffe,e000) pi 0d\1a\1a\1a\1a\19\1a\19\19\19\19\19... # 3328, 1 Item
(fffe,e0dd) na (SequenceDelimitationItem) # 0, 0 SequenceDelimitationItem
(fffe,e00d) na (ItemDelimitationItem for re-encoding) # 0, 0 ItemDelimitationItem
(fffe,e0dd) na (SequenceDelimitationItem for re-encod.) # 0, 0 SequenceDelimitationItem
And here is the same part from the patched file:
Code: Select all
(0088,0200) SQ (Sequence with explicit length #=1) # 3438, 1 IconImageSequence
(fffe,e000) na (Item with explicit length #=9) # 3430, 1 Item
(0028,0002) US 1 # 2, 1 SamplesPerPixel
(0028,0004) CS [MONOCHROME2] # 12, 1 PhotometricInterpretation
(0028,0010) US 64 # 2, 1 Rows
(0028,0011) US 52 # 2, 1 Columns
(0028,0100) US 8 # 2, 1 BitsAllocated
(0028,0101) US 8 # 2, 1 BitsStored
(0028,0102) US 7 # 2, 1 HighBit
(0028,0103) US 0 # 2, 1 PixelRepresentation
(7fe0,0010) OB 0d\1a\1a\1a\1a\19\1a\19\19\19\19\19... # 3328, 1 PixelData
(fffe,e00d) na (ItemDelimitationItem for re-encoding) # 0, 0 ItemDelimitationItem
(fffe,e0dd) na (SequenceDelimitationItem for re-encod.) # 0, 0 SequenceDelimitationItem