http://pesec.livejournal.com/ (
pesec.livejournal.com) wrote in
useless_faq2005-06-14 01:34 pm
![[identity profile]](https://www.dreamwidth.org/img/silk/identity/openid.png)
![[community profile]](https://www.dreamwidth.org/img/silk/identity/community.png)
Минимальный файл с точкой; 1x1
Каков минимальный размер корректного графического файла одного из общепринятых web-стандартов (GIF,JPEG,PNG), содержащего единственную чёрную точку (изображение 1x1)?
У меня пулучилось 35 байтов для GIF. А для не-сетевого формата (PNM) — 12 байтов.
Про термин «webbugs» я знаю. Мне [для души!] нужен собственно размер минимального, а не примеры. Просьба не отсылать на Google без эффективных ключевых слов.
У меня пулучилось 35 байтов для GIF. А для не-сетевого формата (PNM) — 12 байтов.
Про термин «webbugs» я знаю. Мне [для души!] нужен собственно размер минимального, а не примеры. Просьба не отсылать на Google без эффективных ключевых слов.
Re: оппа!
Re: оппа!
Что мы имеем.
формат gif:
Идентификатор GIF
Дескриптор экрана
Глобальная таблица цветов
. . . . . .
Дескирптор изображения
Локальная таблица цветов
Растровые данные
. . . . . .
Терминатор GIF
Я убирал терминатор . собственно, то что браузер читает потоком и сыграло роль - терминатора нет, файл закончен, покажем хотя бы что скачалось.
Но в теории, конечно, бразуер мог бы вякнуть про то что формат файла корявый.
Смотрим 35-байтовый гиф:
47 49 46 38 37 61 - идентификатор (GIF87a)
Дальше идет дескриптор экрана
01 00 - Ширина
01 00 - Высота
80 - хитрый байтик:
Старший бит отвечает за глобальную таблицу цветов.
То есть в нашем файле она есть.
А в описание формата ясно написано:
Глобальная таблица цветов является необязательной и
рекомендуется для изображений, где требуется точная передача
Хе-хе.
00 фон - цветовой индекс фона экрана.
01 Затем резерверд. У меня по формату gif87 он должен быть 0, а здесь 1. К чему бы это?. не знаю.
00 00 00 FF FF FF До символа 2c - идет эта самая глобальная таблица цветов.
Она задана для двух цветов. Еще и белый.
2C - символ разделитель изображения
00 00 - левый край
00 00 - верхний край
01 00 - ширина
01 00 - высота
40 - флажки всякие. (старший бит указывает отeкда брать таблицу цветов: локальную или глобальную. естественно глобальную).
Все. Дальше Растр.
Потом символ терминатора.
Файлы из одного цвета представлются любой программе непрактичными, вот она и кидает нам два цвета в палитру.
А нам нужен один.
Эксперементируем.
Убираем байты FF FF FF- проверяем.
32 байта! Но по всей видимости не везде. Мозилла не понимает. В эксплорере смотрите саме. У меня в описании не сказано что должно быть минимум два цвета в палитре.
Но ничего нам не мешает вообще не использовать таблицу цветов. Пусть он используют глобальную, она по жесткому смещению. А глобальную писать не будем. Тогда будем иметь 29 байт, но хз какой цвет:
Цвет зависит от программы просмотра.
Но это уже наёбка. Удивительно, то, что мозилла её понимает :)
Так что gif Всё таки действительно 35 байт