При создании анализатора для формата файлов .psd я столкнулся с проблемой, заключающейся в том, что во встроенном профиле ICC некоторые теги не сообщают свои размеры правильно в соответствии с официальной спецификацией .
* 1004.* Например, спецификация диктует, что тег, определенный в таблице тегов, определяет смещение и размер, при котором можно найти данные для тега.
Тем не менее я нахожу следующие данные во встроенном профиле .psd.:
(*tags.Tag)(0xc42000a540)({
Sig: (string) (len=4) "A2B0",
Offset: (uint32) 432,
Size: (uint32) 41478
}),
(*tags.Tag)(0xc42000a560)({
Sig: (string) (len=4) "A2B2",
Offset: (uint32) 432,
Size: (uint32) 41478
})
Как видно, их смещение и размер абсолютно одинаковы, но они имеют разные теги.Это можно объяснить, но что не может быть в том, что один только этот размер больше, чем ресурсный блок, в котором живет профиль.
Существует ли какое-то известное изменение, которое поддерживает формат файла .psd в отношении профилей ICC?или это просто неисправный профиль ICC?