Member 13474534 Ответов: 1

Разрешение простого текста GIF


Ну, дело в том, что в Linux с терминалом я использую nano для создания обычного текстового файла с содержимым "GIF89a2017" и сохраняю его как редкий и я знаю, что благодаря этому заголовку файл обнаруживается как GIF-изображение. Дело в том, что четыре байта, которые я ставлю рядом с заголовком, 2017 в данном случае дают разрешение. Таким образом, когда я выполняю команду файл редкий он выводит: rare.gif: данные GIF-изображения, версия 89a, 12338 x 14129.

Что я уже пробовал:

Я знаю, что эти четыре байта-некоторые беззнаковые 16-битные целые числа, но я не знаю, как это делается, чтобы преобразовать 20 в 0x3032 и 17 в 0x3731. Таким образом, вы получаете разрешение, но я не знаю, как вы его получаете, мне просто кажется, что добавляется 3.

Спасибо всем!

1 Ответов

Рейтинг:
1

Richard MacCutchan

0x3032-это шестнадцатеричное представление символов "02", хранящихся в коротком. И (предполагая, что это происходит в системе x86), что на самом деле будет рассматриваться как два символа "20", когда они адресуются как байты. Аналогично 0x3731-это символы 71 или 17 в нормальном порядке.

Чтобы сохранить эти два значения в виде целых чисел, вам нужно поместить 20 как hex 0x0014) и 17 как hex 0x0011. Таким образом, ваш заголовок должен быть "GIF89a\x00\x14\x00\x11"; где префикс \x указывает на абсолютное шестнадцатеричное значение, а не на четыре символа \x00 и т. д.. Но то, как вы ожидаете создать GIF-изображение с помощью текстового редактора, может оказаться еще более сложным.