Я ищу самое маленькое (с точки зрения размера файла) прозрачное изображение на 1 пиксель.
В настоящее время у меня есть gif 49 байтов, который, кажется, является самым популярным.
Но я помню много лет назад имеющий тот, который составлял меньше чем 40 байтов. Возможно, были 32 байта.
Кто-либо может добиться большего успеха? Графический формат не является никаким беспокойством, пока современные веб-браузеры могут отобразить его и уважать прозрачность.
ОБНОВЛЕНИЕ: хорошо, я нашел 42-байтовый прозрачный единственный пиксель gif: http://bignosebird.com/docs/h3.shtml
UPDATE2: Похож на что-либо, что меньше чем 43 байта могли бы быть нестабильными в некоторых клиентах. Не может иметь этого.
Получите этот blank.gif
файл (43 байта). Менее 49: D
Я помню, как однажды, давным-давно, я пытался создать как можно меньший гиф . Если следовать стандарту, если я правильно помню, размер 32 байта. Но вы можете «взломать» спецификацию и получить 26–28 байт, которые будут отображаться в большинстве браузеров. Этот GIF не совсем "правильный", но иногда работает. Просто используйте спецификацию заголовка GIF и HEX-редактор.
См .: http://www.google-analytics.com/__utm.gif , 35B
Альтернатива в Perl (45B):
## tinygif
## Самый маленький Gif в мире
## 35 байт, 43 если прозрачный
## Кредит: http: // www.perlmonks.org/?node_id=7974
use strict;
my ($ RED, $ GREEN, $ BLUE, $ GHOST, $ CGI); {{1} }
## Настройте цвета здесь от 0 до 255
$ RED = 255;
$ GREEN = 0;
$ BLUE = 0; {{1 }}
## Установите для $ GHOST значение 1 для прозрачного gif, 0 для обычного
$ GHOST = 1;
## Установите для $ CGI значение 1, если запись в веб-браузер, 0, если не
$ CGI = 0;
$ CGI && printf "Content-Length:% d \ nContent-Type: image / gif \ n \ n ",
$ GHOST? 43: 35;
printf" GIF89a \ 1 \ 0 \ 1 \ 0% c \ 0 \ 0% c% c% c \ 0 \ 0 \ 0 % s, \ 0 \ 0 \ 0 \ 0 \ 1 \ 0 \ 1 \ 0 \ 0% c% c% c \ 1 \
+0; ",
144, $ КРАСНЫЙ, $ GREEN, $ BLUE, $ GHOST? Pack ("c8", 33,249,4,5,16,0,0,0): "", 2,2,4
+ 0; {{1} }
Запустить ...
$ perl tinygif > tiny.gif
$ ll tiny.gif
-rw-r--r-- 1 stackoverflow staff 45B Apr 3 10:21 tiny.gif
На самом деле вам не следует использовать «гифки-разделители». Их использовали в 90-е годы; теперь они сильно устарели и не имеют никакого смысла, и они вызывают ряд проблем с доступностью и совместимостью.
Используйте CSS.
http://www.maproom.co.uk/0.gif Это 43 байта, немного сбривает.
Вот что я использую в массиве байтов C # (избегает доступа к файлам)
static readonly byte[] TrackingGif = { 0x47, 0x49, 0x46, 0x38, 0x39, 0x61, 0x1, 0x0, 0x1, 0x0, 0x80, 0x0, 0x0, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x2c, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x1, 0x0, 0x0, 0x2, 0x2, 0x44, 0x1, 0x0, 0x3b };
В asp.net MVC это может быть возвращено следующим образом
return File(TrackingGif, "image/gif");