Как сэкономить один байт в GIF
Я понимаю, один байт — не бог весть что, но, возможно, кому-то и такая мелочь будет приятна. Например, полезно во всяких конкурсах, вроде JS1K и т. п.
Файл в формате GIF должен заканчиваться символом с кодом 0x3B («;»), который называется «trailer». На самом деле, этот символ чаще всего не требуется декодерами (хотя обязателен в стандарте). Я проверил на сервисе скриншотов, все браузеры, которые там перечислены, кроме Konqueror 4.2 и выше, поддерживают файлы GIF без этого байта.
Я так же вывесил такой GIF у себя на сайте, обнаружилось, что его так же не поняли агенты, которые подписываются как Java/1.6.0_xx (думаю, это какие-то браузеры на J2ME).
Вывод: если вас это не смущает, то можете сократить свои GIFы на один байт. Или, напротив, проверьте имеют ли ваши GIF этот байт, если для вас почему-то важны эти браузеры (основанные на J2ME и Konqueror 4.xx).
А как ты понял, что этот GIF не смогли понять агенты на Java/1.6.0?
Комментарий для u1itka:
Я поместил такой GIF на своём сайте, на onerror этой картинки повесил вызов логгера useragent’а. «Поймалось» несколько браузеров, я их все перечислил.
После трейлера могут идти произвольные данные?
Комментарий для besisland.name:
Судя по описанию формата, да. Но возможно я что-то не так понял. В любом случае, внутри extension можно хранить произвольные данные.