emptygif
Wika: Filipino

43 byte ang pinakamaliit na transparent GIF.

Ito na ang kabuuan nito. Pumili ng kahit anong byte para makita kung ano ang ginagawa nito, saka kopyahin ang file, i-download, i-hotlink, o i-serve mula sa sarili mong code.

Ang 43-byte na GIF, pinalaki: isang transparent na pixel
0000
0010
0020
I-download ang 1×1.gif

R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==

Suriin ang sarili mong GIF

Ano ang ginagawa ng bawat byte

Ang GIF ay sunud-sunod na mga block. Pito ang block nito, at bawat kulay sa page na ito ay kabilang sa isa sa mga iyon. Pumili ng byte o block para basahin ito. Naka-store ang mga numero bilang little-endian: nauuna ang low byte, kaya ang 01 00 ay nangangahulugang 1.

Mga byteFieldKahulugan
Header Sinasabi nito sa decoder na GIF ito at kung aling bersyon ng format ang aasahan.
47 49 46SignatureAng mga ASCII na letrang “GIF”. Dito nagsisimula ang bawat GIF file.
38 39 61Bersyon“89a”. Kailangan ang 89a para sa transparency; walang graphic control extension ang 87a.
Descriptor ng logical screen Ang laki ng canvas at kung paano naka-set up ang color table nito.
01 00Lapad ng canvas1 px.
01 00Taas ng canvas1 px.
80Mga packed flagApat na setting na pinagsiksik sa iisang byte. Sinasabi ng pinakamataas na bit na may kasunod na global color table; ang huling tatlong bit ang nagbibigay ng laki nito.
00Index ng background colorPalette entry 0. Hindi ito pinapansin ng mga browser at ipinapakita nila kung ano ang nasa likod ng larawan.
00Aspect ratio ng pixelAng 0 ay nangangahulugang parisukat ang mga pixel, walang correction.
Global na color table Ang palette. Index sa listahang ito ang sine-store ng mga pixel, sa halip na mismong kulay.
FF FF FFEntry sa palettePula, berde at asul, tig-iisang byte: #ffffff. Dalawang entry ang pinakamaliit na table na puwedeng magkaroon ang isang GIF.
00 00 00Entry sa palettePula, berde at asul, tig-iisang byte: #000000. Dalawang entry ang pinakamaliit na table na puwedeng magkaroon ang isang GIF.
Extension para sa graphic control Opsyonal na block na idinagdag sa GIF89a. Dito, ginagawa nitong transparent ang palette entry 0.
21Introducer ng extensionAng 0x21 (“!”) ay nag-aanunsyo ng extension block.
F9Label ng graphic controlSinasabi ng 0xF9 na graphic control extension ang extension na ito.
04Laki ng blockSusunod ang 4 byte ng mga setting.
01Mga packed flagAng pinakamababang bit ang transparency flag. Naka-on ito, kaya ginagamit ang transparent index sa ibaba.
00 00Antala0 hundredths ng isang segundo. Sa mga animation lang ito may epekto.
00Index ng transparent na kulayAng palette entry 0 ay idinodrowing na ganap na transparent.
00Terminator ng blockIsang sub-block na zero ang haba na nagsasara sa block.
Descriptor ng larawan Kung saan nakapuwesto ang larawan sa canvas at gaano ito kalaki.
2CSeparator ng larawanNagsisimula ng larawan ang 0x2C (“,”).
00 00KaliwaNagsisimula ang larawan 0 px mula sa kaliwang gilid ng canvas.
00 00ItaasNagsisimula ang larawan 0 px mula sa itaas na gilid ng canvas.
01 00Lapad ng larawan1 px.
01 00Taas ng larawan1 px.
00Mga packed flagWalang local color table, hindi interlaced. Ginagamit ng larawan ang global palette.
Data ng larawan Ang mga pixel, naka-compress gamit ang LZW at hinati sa mga sub-block na hanggang 255 byte ang laki.
02Minimum code size ng LZW2, kaya 3 bit ang lapad ng mga compressed code sa simula.
02Laki ng sub-blockSusunod ang 2 byte ng compressed na data.
44 01Mga compressed na pixelMga LZW code na naka-pack mula sa pinakamababang bit pataas. Tingnan sa ibaba kung paano sila dine-decode.
00Terminator ng blockIsang sub-block na zero ang haba na nagsasara sa block.
Trailer Isang byte na nagmamarka ng dulo ng file.
3BTrailerTinatapos ng 0x3B (“;”) ang file.

Sa loob ng mga packed byte

Bawat isa sa tatlong byte ay nag-iimbak ng ilang maliliit na setting. Ang bit 7 ang nasa pinakakaliwa.

Descriptor ng logical screen 0x80
1May global color table
000Resolution ng kulay
0Naka-sort ang palette ayon sa kahalagahan
000Laki ng table: 2^(n+1) entry
Extension para sa graphic control 0x01
000Nakareserba
000Paraan ng disposal
0Hintayin ang input ng user
1Naka-on ang transparency
Descriptor ng larawan 0x00
0May local color table
0Interlaced
0Naka-sort ang palette ayon sa kahalagahan
00Nakareserba
000Laki ng local table

Paano nagkakasya ang isang pixel sa dalawang byte

Kapag 2 ang minimum code size, 3-bit na code ang binabasa ng decoder. Nililinis ng code 4 ang table, tinatapos ng code 5 ang larawan, at ang mga code 0 hanggang 3 ay mga palette entry. Binabasa ang mga byte na 44 01 mula sa pinakamababang bit pataas:

0x44 010001000x01 00000001

  1. 001100 = 4Clear: magsimula sa bagong table
  2. 000000 = 0Pixel: entry 0 sa palette
  3. 101101 = 5Dulo ng larawan
  4. 0000000 Mga hindi ginagamit na padding bit

Ganito rin ang ginagawa sa mas malalaking larawan: bawat bagong code ay kumakatawan sa isang run na mas mahaba nang isang pixel kaysa sa nauna, kaya 1,743 byte lang ang isang 1000×1000 na transparent GIF.

Puwede pa bang lumiit?

Oo, kung aalisin mo ang mga bahaging kayang palampasin ng mga decoder. Ipinasa namin ang bawat variant sa tatlong browser engine at sa Pillow, at itinala namin kung ano ang idinrowing nila.

LakiVariantChromiumFirefoxWebKitPillow
43Ang standard na file sa page na ito.TransparentTransparentTransparentTransparent
42Walang trailer byte. Humihinto rin naman ang mga decoder sa dulo ng data.TransparentTransparentTransparentTransparent
37Walang palette talaga. Valid pa rin: pinapayagan ng spec ang mga decoder na gumamit ng sarili nilang palette, at transparent din naman ang index 0.TransparentTransparentTransparentTransparent
36Walang palette at walang trailer.TransparentTransparentTransparentTransparent
35Walang transparency block: idinodrowing ang pixel sa palette color 0, na puti.PutiPutiPutiPuti
35Ang format noong 1987. Wala itong paraan para markahang transparent ang isang kulay.PutiPutiPutiPuti
34May transparency block pero walang compressed na pixel.TransparentTransparentTransparentError
33Pareho nito, pero walang trailer.TransparentTransparentTransparentError
29Walang palette at walang transparency. Ang bawat engine ang pumipili ng sarili nitong kulay.ItimPutiTransparentItim
26Isang larawan na walang kahit anong compressed na data.TransparentTransparentTransparentError
14Header, laki ng canvas at trailer lang. Walang larawan sa loob nito.TransparentErrorTransparentError

Gamitin ang 43 byte kapag kailangang gumana ito kahit saan. Valid na GIF pa rin ang 37 byte at transparent ito sa bawat engine na sinubukan namin. Kapag mas maliit pa roon, umaasa ka na sa pagiging maluwag ng decoder, at makikita sa 29-byte na file kung gaano nagkakaiba-iba ang mga engine.

Sinuri noong Setyembre 23, 2026 gamit ang Chromium 153.0.8010.12, Firefox 155.0, WebKit 26.6, Pillow 12.2.0.

Ang parehong pixel sa ibang format

Ang pinakamaliit na transparent na 1×1 file na nagawa namin sa bawat format, ipinasa sa parehong apat na engine. Magbukas ng row para makita ang mga byte nito, na kinulayan tulad ng mga GIF block na may parehong trabaho.

LakiFileData URIChromiumFirefoxWebKitPillow
28
WebP Pareho nito, pero walang dalawang padding byte. Tinatanggihan ng WebKit ang mga WebP file na mas maikli sa 30 byte.
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 Container 12
  • VP8L chunk Container 8
  • 0x2F Signature 1
  • width, height, alpha Laki 4
  • prefix codes Mga pixel 3
63TransparentTransparentErrorTransparent
30
WebP Lossless na VP8L. Iisang simbolo lang ang laman ng bawat prefix code, kaya walang bit na nagagamit ang mga pixel at nananatili sa ganitong laki ang file hanggang 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 Container 12
  • VP8L chunk Container 8
  • 0x2F Signature 1
  • width, height, alpha Laki 4
  • prefix codes Mga pixel 3
  • padding Padding 2
63TransparentTransparentTransparentTransparent
43
GIF Ang 43-byte na GIF mula sa itaas ng page na ito.
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
  • Header 6
  • Descriptor ng logical screen 7
  • Global na color table 6
  • Extension para sa graphic control 8
  • Descriptor ng larawan 10
  • Data ng larawan 5
  • Trailer 1
82TransparentTransparentTransparentTransparent
58
BMP Walang alpha mask ang klasikong 40-byte na header, kaya binabalewala ang ikaapat na byte at itim ang pixel saanman.
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 Signature 14
  • BITMAPINFOHEADER Laki 40
  • BGRA Mga pixel 4
102ItimItimItimItim
62
SVG Isang walang lamang svg element na may width at height. Hindi nagbabasa ng SVG ang Pillow.
<svg xmlns="http://www.w3.org/2000/svg" width="1" height="1"/>
  • <svg xmlns> Signature 39
  • width, height Laki 21
  • /> Dulo 2
85TransparentTransparentTransparentError
67
PNG Truecolor na may alpha. Mano-manong kinompress ang iisang scanline ng mga zero, mas maikli nang isang byte kaysa sa zlib sa pinakamahusay na setting nito.
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 Signature 8
  • IHDR Laki 25
  • IDAT Mga pixel 22
  • IEND Dulo 12
114TransparentTransparentTransparentTransparent
70
ICO Isang favicon na may 32-bit na bitmap at ang 1-bit na AND mask nito.
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 Signature 6
  • ICONDIRENTRY Laki 16
  • BITMAPINFOHEADER Laki 40
  • BGRA Mga pixel 4
  • AND mask Transparency 4
121TransparentTransparentTransparentTransparent
74
BMP Isang 56-byte na header na may alpha mask. Hindi ito nilo-load ng 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 Signature 14
  • BITMAPV3INFOHEADER Laki 56
  • BGRA Mga pixel 4
122TransparentTransparentErrorTransparent
89
ICO Isang favicon na may lamang 67-byte na PNG.
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 Signature 6
  • ICONDIRENTRY Laki 16
  • PNG signature Signature 8
  • IHDR Laki 25
  • IDAT Mga pixel 22
  • IEND Dulo 12
145TransparentTransparentTransparentTransparent
126
BMP Ang V4 header. Binabalewala ng WebKit ang alpha mask nito at itim ang idinodrowing.
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 Signature 14
  • BITMAPV4INFOHEADER Laki 108
  • BGRA Mga pixel 4
190TransparentTransparentItimTransparent
142
BMP Ang V5 header, na pareho ang resulta sa 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 Signature 14
  • BITMAPV5INFOHEADER Laki 124
  • BGRA Mga pixel 4
214TransparentTransparentItimTransparent
437
AVIF Pareho nito, pero may 4:0:0 subsampling, na nag-aalis ng mga color plane.
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 Signature 28
  • meta Metadata 362
  • mdat Mga pixel 47
607TransparentTransparentTransparentTransparent
471
AVIF Ang isinusulat ng libavif sa quality 100: isang AV1 image para sa kulay at isa para sa alpha, sa loob ng mga ISO BMFF box.
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 Signature 32
  • meta Metadata 390
  • mdat Mga pixel 49
651TransparentTransparentTransparentTransparent

Ang WebP, sa 30 byte, ang pinakamaliit na file na lumabas na transparent sa lahat ng apat na engine: 13 byte na mas maliit kaysa sa GIF.

Haba ng data URI sa mga character: SVG bilang URL-encoded na text, ang iba ay base64. Sinuri noong Setyembre 24, 2026 gamit ang Chromium 153.0.8010.12, Firefox 155.0, WebKit 26.6, Pillow 12.2.0. Isinulat ang AVIF gamit ang libavif 1.4.1.

Gumawa sa kahit anong laki

Transparent o solid na kulay, mula 1×1 hanggang 65535×65535. Sa browser mo ito ginagawa; walang ina-upload.

Laman
Format
Karaniwang laki

1×1 · 43 byte

I-download ang GIF

I-serve mula sa stack mo

191 na snippet na handa nang patakbuhin. Piliin ang sa iyo: bawat isa ay sumasagot sa path na pinili mo gamit ang image/gif na response. Kung binago mo ang laki o kulay sa itaas, ang GIF na iyon ang gagamitin ng mga snippet.

Express JavaScript

I-install
npm i express
File
server.mjs
Patakbuhin
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);

Pinatakbo namin ang snippet na ito at ikinumpara ang mga byte na ibinalik nito. Buksan ang page

Saan ito ginagamit

  • Mga tracking pixel at beacon: nilo-log ng server ang request at sumasagot ito ng pinakamaliit na valid na larawan.
  • Mga placeholder para sa mga lazy-loaded na larawan, para valid na ang img tag bago dumating ang totoong source.
  • Mga fixed-size na spacer sa HTML email, kung saan hindi pare-pareho ang suporta sa CSS.
  • Mga test at mock na nangangailangan ng totoong larawan nang hindi na nagsasama ng image file.

Hindi kasing-maaasahan ng inaakala ang mga tracking pixel

Pinapa-preload ng Apple Mail ang mga remote image sa pamamagitan ng proxy kapag naka-on ang Mail Privacy Protection, kaya ang isang “open” ay maaaring hindi talaga gawa ng tao. Kinukuha rin ng Gmail ang mga larawan sa sarili nitong proxy at kina-cache ang mga ito. Maraming email client ang nagba-block ng mga remote image bilang default. Para sa page analytics, kadalasang mas angkop ang navigator.sendBeacon() o isang 204 No Content na response kaysa sa larawan.

Mga tanong

Bakit ito tinatawag na empty kung may pixel naman ito?
Kailangang may kahit isang pixel ang isang GIF. 1×1 ito at minarkahang transparent ang nag-iisang kulay nito, kaya walang lumalabas.
Valid ba ang 43-byte na file?
Oo. Eksaktong sinusunod nito ang GIF89a specification, at transparent itong idinodrowing ng bawat engine sa table sa itaas.
Bakit GIF at hindi PNG o WebP?
Mas maliit ito kaysa sa pinakamaliit na transparent PNG, at kaya itong basahin ng bawat browser, email client at image library mula sa nakaraang 35 taon.
Data URI ba o file ang dapat kong gamitin?
Nakakatipid ng isang request ang data URI at bagay ito sa mga placeholder at CSS. Kailangan ng file o endpoint kapag ang request mismo ang punto, gaya ng sa mga tracking pixel.
Anong Content-Type ang dapat kong ipadala?
image/gif. Magdagdag ng Cache-Control: no-store kung kailangang umabot sa server mo ang bawat request.