самый маленький размер файла для прозрачного единственного пиксельного изображения

Я ищу самое маленькое (с точки зрения размера файла) прозрачное изображение на 1 пиксель.

В настоящее время у меня есть gif 49 байтов, который, кажется, является самым популярным.

Но я помню много лет назад имеющий тот, который составлял меньше чем 40 байтов. Возможно, были 32 байта.

Кто-либо может добиться большего успеха? Графический формат не является никаким беспокойством, пока современные веб-браузеры могут отобразить его и уважать прозрачность.

ОБНОВЛЕНИЕ: хорошо, я нашел 42-байтовый прозрачный единственный пиксель gif: http://bignosebird.com/docs/h3.shtml

UPDATE2: Похож на что-либо, что меньше чем 43 байта могли бы быть нестабильными в некоторых клиентах. Не может иметь этого.

62
задан zaf 6 April 2010 в 09:20
поделиться

6 ответов

Получите этот blank.gif файл (43 байта). Менее 49: D

20
ответ дан 24 November 2019 в 16:35
поделиться

Я помню, как однажды, давным-давно, я пытался создать как можно меньший гиф . Если следовать стандарту, если я правильно помню, размер 32 байта. Но вы можете «взломать» спецификацию и получить 26–28 байт, которые будут отображаться в большинстве браузеров. Этот GIF не совсем "правильный", но иногда работает. Просто используйте спецификацию заголовка GIF и HEX-редактор.

0
ответ дан 24 November 2019 в 16:35
поделиться
  • См .: 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
7
ответ дан 24 November 2019 в 16:35
поделиться

На самом деле вам не следует использовать «гифки-разделители». Их использовали в 90-е годы; теперь они сильно устарели и не имеют никакого смысла, и они вызывают ряд проблем с доступностью и совместимостью.

Используйте CSS.

0
ответ дан 24 November 2019 в 16:35
поделиться

http://www.maproom.co.uk/0.gif Это 43 байта, немного сбривает.

0
ответ дан 24 November 2019 в 16:35
поделиться

Вот что я использую в массиве байтов 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");
27
ответ дан 24 November 2019 в 16:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: