emptygif
Язык: Русский

Самый маленький прозрачный GIF занимает 43 байта.

Вот он целиком. Выберите любой байт, чтобы узнать, что он делает, а затем скопируйте файл, скачайте его, подключите по прямой ссылке или отдавайте из своего кода.

GIF в 43 байта, увеличенный: один прозрачный пиксель
0000
0010
0020
Скачать 1×1.gif

R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==

Проверить свой GIF

Что делает каждый байт

GIF — это последовательность блоков. В этом файле их семь, и каждый цвет на странице соответствует одному из них. Выберите байт или блок, чтобы прочитать описание. Числа хранятся в порядке little-endian: младший байт идёт первым, поэтому 01 00 означает 1.

БайтыПолеЗначение
Заголовок Сообщает декодеру, что это GIF, и какую версию формата ожидать.
47 49 46СигнатураASCII-буквы «GIF». С них начинается любой GIF-файл.
38 39 61Версия«89a». Для прозрачности нужна версия 89a; в 87a нет расширения управления графикой.
Дескриптор логического экрана Размер холста и устройство его таблицы цветов.
01 00Ширина холста1 px.
01 00Высота холста1 px.
80Упакованные флагиЧетыре настройки, втиснутые в один байт. Старший бит говорит, что далее следует глобальная таблица цветов; три младших бита задают её размер.
00Индекс цвета фонаЭлемент палитры 0. Браузеры его игнорируют и показывают то, что находится под изображением.
00Соотношение сторон пикселя0 означает квадратные пиксели без коррекции.
Глобальная таблица цветов Палитра. Пиксели хранят не цвет, а индекс в этом списке.
FF FF FFЭлемент палитрыКрасный, зелёный и синий, по байту на каждый: #ffffff. Два элемента — наименьшая таблица, которая может быть у GIF.
00 00 00Элемент палитрыКрасный, зелёный и синий, по байту на каждый: #000000. Два элемента — наименьшая таблица, которая может быть у GIF.
Расширение управления графикой Необязательный блок, появившийся в GIF89a. Здесь он делает элемент палитры 0 прозрачным.
21Вводный байт расширения0x21 («!») объявляет блок расширения.
F9Метка управления графикой0xF9 означает, что это расширение управления графикой.
04Размер блокаЧисло байтов настроек, которые идут следом: 4.
01Упакованные флагиМладший бит — флаг прозрачности. Он установлен, поэтому используется индекс прозрачного цвета, указанный ниже.
00 00ЗадержкаВ сотых долях секунды: 0. Важна только для анимации.
00Индекс прозрачного цветаЭлемент палитры 0 отрисовывается полностью прозрачным.
00Терминатор блокаПодблок нулевой длины, закрывающий блок.
Дескриптор изображения Где изображение расположено на холсте и какого оно размера.
2CРазделитель изображения0x2C («,») начинает изображение.
00 00СлеваОтступ изображения от левого края холста: 0 px.
00 00СверхуОтступ изображения от верхнего края холста: 0 px.
01 00Ширина изображения1 px.
01 00Высота изображения1 px.
00Упакованные флагиНет локальной таблицы цветов, нет чересстрочности. Изображение использует глобальную палитру.
Данные изображения Пиксели, сжатые LZW и разбитые на подблоки размером до 255 байт.
02Минимальный размер кода LZW2, поэтому сжатые коды поначалу имеют ширину 3 бит.
02Размер подблокаЧисло байтов сжатых данных, которые идут следом: 2.
44 01Сжатые пикселиКоды LZW, упакованные начиная с младшего бита. Как они декодируются, показано ниже.
00Терминатор блокаПодблок нулевой длины, закрывающий блок.
Трейлер Один байт, отмечающий конец файла.
3BТрейлер0x3B («;») завершает файл.

Внутри упакованных байтов

Каждый из трёх байтов хранит несколько мелких настроек. Бит 7 — крайний слева.

Дескриптор логического экрана 0x80
1Есть глобальная таблица цветов
000Разрешение цвета
0Палитра отсортирована по важности
000Размер таблицы: 2^(n+1) элементов
Расширение управления графикой 0x01
000Зарезервировано
000Метод удаления кадра
0Ждать ввода пользователя
1Прозрачность включена
Дескриптор изображения 0x00
0Есть локальная таблица цветов
0Чересстрочность
0Палитра отсортирована по важности
00Зарезервировано
000Размер локальной таблицы

Как два байта хранят один пиксель

При минимальном размере кода 2 декодер читает 3-битные коды. Код 4 очищает таблицу, код 5 завершает изображение, а коды с 0 по 3 — это элементы палитры. Байты 44 01 читаются начиная с младшего бита:

0x44 010001000x01 00000001

  1. 001100 = 4Очистка: начать с новой таблицы
  2. 000000 = 0Пиксель: элемент палитры 0
  3. 101101 = 5Конец изображения
  4. 0000000 Неиспользуемые биты выравнивания

Большие изображения используют тот же приём: каждый новый код обозначает серию на один пиксель длиннее предыдущей, поэтому прозрачный GIF 1000×1000 занимает всего 1 743 байт.

Можно ли меньше?

Да, если выбросить части, без которых декодеры обходятся. Мы прогнали каждый вариант через три браузерных движка и Pillow и записали, что они нарисовали.

РазмерВариантChromiumFirefoxWebKitPillow
43Стандартный файл с этой страницы.ПрозрачныйПрозрачныйПрозрачныйПрозрачный
42Без байта-трейлера. Декодеры всё равно останавливаются в конце данных.ПрозрачныйПрозрачныйПрозрачныйПрозрачный
37Совсем без палитры. Всё ещё корректно: спецификация разрешает декодерам использовать свою палитру, а индекс 0 и так прозрачный.ПрозрачныйПрозрачныйПрозрачныйПрозрачный
36Без палитры и без трейлера.ПрозрачныйПрозрачныйПрозрачныйПрозрачный
35Без блока прозрачности: пиксель рисуется цветом 0 из палитры, белым.БелыйБелыйБелыйБелый
35Формат 1987 года. В нём нельзя пометить цвет как прозрачный.БелыйБелыйБелыйБелый
34Блок прозрачности есть, сжатых пикселей нет.ПрозрачныйПрозрачныйПрозрачныйОшибка
33То же самое без трейлера.ПрозрачныйПрозрачныйПрозрачныйОшибка
29Без палитры и без прозрачности. Каждый движок выбирает свой цвет.ЧёрныйБелыйПрозрачныйЧёрный
26Изображение вообще без сжатых данных.ПрозрачныйПрозрачныйПрозрачныйОшибка
14Только заголовок, размер холста и трейлер. Изображения в нём нет.ПрозрачныйОшибкаПрозрачныйОшибка

Берите 43 байта, если файл должен работать везде. 37 байт — всё ещё корректный GIF, и он был прозрачным во всех проверенных движках. Ниже вы зависите от снисходительности декодера, а файл в 29 байт показывает, насколько расходятся движки.

Проверено 23 сентября 2026 г.: Chromium 153.0.8010.12, Firefox 155.0, WebKit 26.6, Pillow 12.2.0.

Тот же пиксель в других форматах

Самый маленький прозрачный файл 1×1, который нам удалось собрать в каждом формате, проверенный в тех же четырёх движках. Раскройте строку, чтобы увидеть его байты: они окрашены так же, как блоки GIF с той же ролью.

РазмерФайлData URIChromiumFirefoxWebKitPillow
28
WebP То же без двух байтов выравнивания. WebKit отвергает файлы WebP короче 30 байт.
52 49 46 46 14 00 00 00 57 45 42 50 56 50 38 4c 08 00 00 00 2f 00 00 00 10 88 88 08
  • RIFF … WEBP Контейнер 12
  • VP8L chunk Контейнер 8
  • 0x2F Сигнатура 1
  • width, height, alpha Размер 4
  • prefix codes Пиксели 3
63ПрозрачныйПрозрачныйОшибкаПрозрачный
30
WebP VP8L без потерь. Каждый префиксный код содержит один символ, поэтому пиксели не занимают ни бита, и файл остаётся того же размера вплоть до 16384×16384.
52 49 46 46 16 00 00 00 57 45 42 50 56 50 38 4c 0a 00 00 00 2f 00 00 00 10 88 88 08 00 00
  • RIFF … WEBP Контейнер 12
  • VP8L chunk Контейнер 8
  • 0x2F Сигнатура 1
  • width, height, alpha Размер 4
  • prefix codes Пиксели 3
  • padding Выравнивание 2
63ПрозрачныйПрозрачныйПрозрачныйПрозрачный
43
GIF GIF в 43 байта из начала этой страницы.
47 49 46 38 39 61 01 00 01 00 80 00 00 ff ff ff 00 00 00 21 f9 04 01 00 00 00 00 2c 00 00 00 00 01 00 01 00 00 02 02 44 01 00 3b
  • Заголовок 6
  • Дескриптор логического экрана 7
  • Глобальная таблица цветов 6
  • Расширение управления графикой 8
  • Дескриптор изображения 10
  • Данные изображения 5
  • Трейлер 1
82ПрозрачныйПрозрачныйПрозрачныйПрозрачный
58
BMP В классическом 40-байтовом заголовке нет маски альфа-канала, поэтому четвёртый байт игнорируется и пиксель везде чёрный.
42 4d 3a 00 00 00 00 00 00 00 36 00 00 00 28 00 00 00 01 00 00 00 01 00 00 00 01 00 20 00 00 00 00 00 04 00 00 00 13 0b 00 00 13 0b 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  • BITMAPFILEHEADER Сигнатура 14
  • BITMAPINFOHEADER Размер 40
  • BGRA Пиксели 4
102ЧёрныйЧёрныйЧёрныйЧёрный
62
SVG Пустой элемент svg с шириной и высотой. Pillow не читает SVG.
<svg xmlns="http://www.w3.org/2000/svg" width="1" height="1"/>
  • <svg xmlns> Сигнатура 39
  • width, height Размер 21
  • /> Конец 2
85ПрозрачныйПрозрачныйПрозрачныйОшибка
67
PNG Truecolor с альфа-каналом. Единственная строка из нулей сжата вручную и на байт короче, чем у zlib на самой сильной настройке.
89 50 4e 47 0d 0a 1a 0a 00 00 00 0d 49 48 44 52 00 00 00 01 00 00 00 01 08 06 00 00 00 1f 15 c4 89 00 00 00 0a 49 44 41 54 78 01 63 00 01 00 00 05 00 01 36 d0 88 dd 00 00 00 00 49 45 4e 44 ae 42 60 82
  • PNG signature Сигнатура 8
  • IHDR Размер 25
  • IDAT Пиксели 22
  • IEND Конец 12
114ПрозрачныйПрозрачныйПрозрачныйПрозрачный
70
ICO Favicon с 32-битным растром и его 1-битной маской AND.
00 00 01 00 01 00 01 01 00 00 01 00 20 00 30 00 00 00 16 00 00 00 28 00 00 00 01 00 00 00 02 00 00 00 01 00 20 00 00 00 00 00 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 00 00 00
  • ICONDIR Сигнатура 6
  • ICONDIRENTRY Размер 16
  • BITMAPINFOHEADER Размер 40
  • BGRA Пиксели 4
  • AND mask Прозрачность 4
121ПрозрачныйПрозрачныйПрозрачныйПрозрачный
74
BMP 56-байтовый заголовок с маской альфа-канала. WebKit такой файл не загружает.
42 4d 4a 00 00 00 00 00 00 00 46 00 00 00 38 00 00 00 01 00 00 00 01 00 00 00 01 00 20 00 03 00 00 00 04 00 00 00 13 0b 00 00 13 0b 00 00 00 00 00 00 00 00 00 00 00 00 ff 00 00 ff 00 00 ff 00 00 00 00 00 00 ff 00 00 00 00
  • BITMAPFILEHEADER Сигнатура 14
  • BITMAPV3INFOHEADER Размер 56
  • BGRA Пиксели 4
122ПрозрачныйПрозрачныйОшибкаПрозрачный
89
ICO Favicon с PNG в 67 байт.
00 00 01 00 01 00 01 01 00 00 01 00 20 00 43 00 00 00 16 00 00 00 89 50 4e 47 0d 0a 1a 0a 00 00 00 0d 49 48 44 52 00 00 00 01 00 00 00 01 08 06 00 00 00 1f 15 c4 89 00 00 00 0a 49 44 41 54 78 01 63 00 01 00 00 05 00 01 36 d0 88 dd 00 00 00 00 49 45 4e 44 ae 42 60 82
  • ICONDIR Сигнатура 6
  • ICONDIRENTRY Размер 16
  • PNG signature Сигнатура 8
  • IHDR Размер 25
  • IDAT Пиксели 22
  • IEND Конец 12
145ПрозрачныйПрозрачныйПрозрачныйПрозрачный
126
BMP Заголовок V4. WebKit игнорирует его маску альфа-канала и рисует чёрный.
42 4d 7e 00 00 00 00 00 00 00 7a 00 00 00 6c 00 00 00 01 00 00 00 01 00 00 00 01 00 20 00 03 00 00 00 04 00 00 00 13 0b 00 00 13 0b 00 00 00 00 00 00 00 00 00 00 00 00 ff 00 00 ff 00 00 ff 00 00 00 00 00 00 ff 42 47 52 73 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  • BITMAPFILEHEADER Сигнатура 14
  • BITMAPV4INFOHEADER Размер 108
  • BGRA Пиксели 4
190ПрозрачныйПрозрачныйЧёрныйПрозрачный
142
BMP Заголовок V5; в WebKit результат тот же.
42 4d 8e 00 00 00 00 00 00 00 8a 00 00 00 7c 00 00 00 01 00 00 00 01 00 00 00 01 00 20 00 03 00 00 00 04 00 00 00 13 0b 00 00 13 0b 00 00 00 00 00 00 00 00 00 00 00 00 ff 00 00 ff 00 00 ff 00 00 00 00 00 00 ff 42 47 52 73 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  • BITMAPFILEHEADER Сигнатура 14
  • BITMAPV5INFOHEADER Размер 124
  • BGRA Пиксели 4
214ПрозрачныйПрозрачныйЧёрныйПрозрачный
437
AVIF То же с субдискретизацией 4:0:0, которая отбрасывает цветовые плоскости.
00 00 00 1c 66 74 79 70 61 76 69 66 00 00 00 00 61 76 69 66 6d 69 66 31 6d 69 61 66 00 00 01 6a 6d 65 74 61 00 00 00 00 00 00 00 21 68 64 6c 72 00 00 00 00 00 00 00 00 70 69 63 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0e 70 69 74 6d 00 00 00 00 00 01 00 00 00 2c 69 6c 6f 63 00 00 00 00 44 00 00 02 00 01 00 00 00 01 00 00 01 a0 00 00 00 15 00 02 00 00 00 01 00 00 01 8e 00 00 00 12 00 00 00 42 69 69 6e 66 00 00 00 00 00 02 00 00 00 1a 69 6e 66 65 02 00 00 00 00 01 00 00 61 76 30 31 43 6f 6c 6f 72 00 00 00 00 1a 69 6e 66 65 02 00 00 00 00 02 00 00 61 76 30 31 41 6c 70 68 61 00 00 00 00 1a 69 72 65 66 00 00 00 00 00 00 00 0e 61 75 78 6c 00 02 00 01 00 01 00 00 00 a7 69 70 72 70 00 00 00 81 69 70 63 6f 00 00 00 14 69 73 70 65 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00 0e 70 69 78 69 00 00 00 00 01 08 00 00 00 0c 61 76 31 43 81 00 1c 00 00 00 00 13 63 6f 6c 72 6e 63 6c 78 00 01 00 0d 00 06 80 00 00 00 38 61 75 78 43 00 00 00 00 75 72 6e 3a 6d 70 65 67 3a 6d 70 65 67 42 3a 63 69 63 70 3a 73 79 73 74 65 6d 73 3a 61 75 78 69 6c 69 61 72 79 3a 61 6c 70 68 61 00 00 00 00 1e 69 70 6d 61 00 00 00 00 00 00 00 02 00 01 04 01 02 83 04 00 02 04 01 02 83 05 00 00 00 2f 6d 64 61 74 12 00 0a 04 18 00 06 15 32 08 10 00 00 18 e1 42 72 10 12 00 0a 07 18 00 06 18 08 68 35 32 08 10 00 00 18 e1 42 72 10
  • ftyp Сигнатура 28
  • meta Метаданные 362
  • mdat Пиксели 47
607ПрозрачныйПрозрачныйПрозрачныйПрозрачный
471
AVIF То, что записывает libavif при качестве 100: одно изображение AV1 для цвета и одно для альфа-канала в боксах ISO BMFF.
00 00 00 20 66 74 79 70 61 76 69 66 00 00 00 00 61 76 69 66 6d 69 66 31 6d 69 61 66 4d 41 31 42 00 00 01 86 6d 65 74 61 00 00 00 00 00 00 00 21 68 64 6c 72 00 00 00 00 00 00 00 00 70 69 63 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0e 70 69 74 6d 00 00 00 00 00 01 00 00 00 2c 69 6c 6f 63 00 00 00 00 44 00 00 02 00 01 00 00 00 01 00 00 01 c0 00 00 00 17 00 02 00 00 00 01 00 00 01 ae 00 00 00 12 00 00 00 42 69 69 6e 66 00 00 00 00 00 02 00 00 00 1a 69 6e 66 65 02 00 00 00 00 01 00 00 61 76 30 31 43 6f 6c 6f 72 00 00 00 00 1a 69 6e 66 65 02 00 00 00 00 02 00 00 61 76 30 31 41 6c 70 68 61 00 00 00 00 1a 69 72 65 66 00 00 00 00 00 00 00 0e 61 75 78 6c 00 02 00 01 00 01 00 00 00 c3 69 70 72 70 00 00 00 9d 69 70 63 6f 00 00 00 14 69 73 70 65 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00 10 70 69 78 69 00 00 00 00 03 08 08 08 00 00 00 0c 61 76 31 43 81 00 0c 00 00 00 00 13 63 6f 6c 72 6e 63 6c 78 00 01 00 0d 00 06 80 00 00 00 0e 70 69 78 69 00 00 00 00 01 08 00 00 00 0c 61 76 31 43 81 00 1c 00 00 00 00 38 61 75 78 43 00 00 00 00 75 72 6e 3a 6d 70 65 67 3a 6d 70 65 67 42 3a 63 69 63 70 3a 73 79 73 74 65 6d 73 3a 61 75 78 69 6c 69 61 72 79 3a 61 6c 70 68 61 00 00 00 00 1e 69 70 6d 61 00 00 00 00 00 00 00 02 00 01 04 01 02 83 04 00 02 04 01 05 86 07 00 00 00 31 6d 64 61 74 12 00 0a 04 18 00 06 15 32 08 10 00 00 18 e1 42 72 10 12 00 0a 08 18 00 06 08 08 68 34 20 32 09 10 00 00 00 07 c8 24 c6 62
  • ftyp Сигнатура 32
  • meta Метаданные 390
  • mdat Пиксели 49
651ПрозрачныйПрозрачныйПрозрачныйПрозрачный

Самый маленький файл, оказавшийся прозрачным во всех четырёх движках, — WebP: 30 Б, на 13 Б меньше, чем GIF.

Длина data URI в символах: SVG — как URL-кодированный текст, остальные — в base64. Проверено 24 сентября 2026 г.: Chromium 153.0.8010.12, Firefox 155.0, WebKit 26.6, Pillow 12.2.0. AVIF записан libavif 1.4.1.

GIF любого размера

Прозрачный или залитый одним цветом, от 1×1 до 65535×65535. Генерируется в вашем браузере, ничего никуда не загружается.

Заливка
Формат
Популярные размеры

1×1 · 43 Б

Скачать GIF

Отдавайте из своего стека

Готовых к запуску примеров: 191. Выберите свой: каждый отвечает по выбранному вами пути ответом image/gif. Если выше вы изменили размер или цвет, примеры используют этот GIF.

Express JavaScript

Установка
npm i express
Файл
server.mjs
Запуск
node server.mjs
import express from 'express';

const GIF = Buffer.from('R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==', 'base64');

const app = express();

app.get('/pixel.gif', (req, res) => {
  res.set('Cache-Control', 'no-store');
  res.type('gif').send(GIF);
});

app.listen(8080);

Мы запустили этот пример и сравнили байты, которые он вернул. Открыть страницу

Для чего он нужен

  • Пиксели отслеживания и маяки (beacons): сервер записывает запрос в лог и отвечает самым маленьким корректным изображением.
  • Заглушки для изображений с ленивой загрузкой, чтобы тег img был корректным до того, как придёт настоящий источник.
  • Распорки фиксированного размера в HTML-письмах, где поддержка CSS неполная.
  • Тесты и моки, которым нужно настоящее изображение, но без отдельного файла.

Пиксели отслеживания менее надёжны, чем кажется

Apple Mail заранее загружает удалённые изображения через прокси, когда включена защита конфиденциальности в Почте, так что за «открытием» может вообще не стоять человек. Gmail тоже загружает изображения через собственный прокси и кеширует их. Многие клиенты по умолчанию блокируют удалённые изображения. Для аналитики страниц navigator.sendBeacon() или ответ 204 No Content часто подходят лучше, чем изображение.

Вопросы и ответы

Почему он называется пустым, если в нём есть пиксель?
В GIF должен быть хотя бы один пиксель. У этого размер 1×1, а его единственный цвет помечен как прозрачный, поэтому ничего не видно.
Корректен ли файл в 43 байта?
Да. Он в точности следует спецификации GIF89a, и все движки из таблицы выше отрисовывают его прозрачным.
Почему GIF, а не PNG или WebP?
Он меньше минимального прозрачного PNG, и его прочитает любой браузер, почтовый клиент и библиотека для работы с изображениями за последние 35 лет.
Что использовать: data URI или файл?
Data URI экономит запрос и подходит для заглушек и CSS. Файл или эндпоинт нужен, когда смысл именно в самом запросе, как у пикселей отслеживания.
Какой Content-Type отправлять?
image/gif. Добавьте Cache-Control: no-store, если каждый запрос должен доходить до вашего сервера.