ANI viewer

 

Давно собирался разобраться с форматом анимации указателя. Используется формат RIFF, что уже само не вызывает энтузиазма.  Я использовал пару документов - ВракипедияGFF Format Summary: Microsoft RIFF

По описанию заголовок состоит из трех полей = 'RIFF', размер файла, 'ACON'. У нескольких файлов размер в заголовке или совпадает, или отличается на 8 байт.

Следующий блок LIST 'INFO' содержит название курсора и имя автора. Допускается отсутствующее поле ICOP - авторские права.

Блок LIST'fram' может состоять или из значков или из курсоров - нашел только icon. Для преобразования данных в картинки помог один пример с функцией CreateIconFromResource().

И последний блок 'seq ' добил основательно. Блок содержит последовательность кадров в анимации. Я перебрал несколько редакторов, но не нашел, как определить эту самую последовательность. Например, для курсора wagtail.ani список выглядит так: 0,1,2,3,4,5,6,5,4,3,2,1.

Нашлась старая забытая в 2004 году программа Ani.cur.ico editor(или icon DIY) 3.5, в ней все выглядит правильно:


Дальше я совсем запутался - исправил один frame, сохранил курсор и сравнил с оригиналом - не нашел разницу. 
Добавил выгрузку кадров в формате BMP и плюнул на все эти заморочки. Пусть полежит.


Комментарии