emptygif
Lugha: Kiswahili

GIF angavu ndogo kabisa ina baiti 43.

Hii ndiyo yote. Chagua baiti yoyote uone inachofanya, kisha unakili faili, uipakue, uifanyie hotlink, au uitoe kutoka kwenye msimbo wako mwenyewe.

GIF ya baiti 43, imekuzwa: pikseli moja angavu
0000
0010
0020
Pakua 1×1.gif

R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==

Kila baiti inafanya nini

GIF ni mfuatano wa bloku. Hii ina bloku saba, na kila rangi kwenye ukurasa huu ni ya mojawapo. Chagua baiti au bloku uisome. Namba huhifadhiwa kwa mpangilio wa little-endian: baiti ya chini huja kwanza, kwa hiyo 01 00 inamaanisha 1.

BaitiSehemuMaana
Kichwa Humwambia decoder kwamba hii ni GIF na toleo gani la umbizo litarajiwe.
47 49 46SahihiHerufi za ASCII “GIF”. Kila faili ya GIF huanza nazo.
38 39 61Toleo“89a”. 89a inahitajika kwa uwazi; 87a haina kiendelezi cha udhibiti wa michoro.
Kielezo cha skrini ya kimantiki Ukubwa wa turubai na jinsi jedwali lake la rangi lilivyopangwa.
01 00Upana wa turubai1 px.
01 00Urefu wa turubai1 px.
80Bendera zilizounganishwaMipangilio minne imebanwa katika baiti moja. Biti ya juu inaonyesha kwamba jedwali la rangi la jumla linafuata; biti tatu za mwisho zinatoa ukubwa wake.
00Fahirisi ya rangi ya usuliIngizo 0 la paleti. Vivinjari hulipuuza na kuonyesha kilicho nyuma ya picha.
00Uwiano wa umbo la pikseli0 inamaanisha pikseli za mraba, bila marekebisho.
Jedwali la rangi la jumla Paleti. Pikseli huhifadhi fahirisi ya orodha hii badala ya rangi.
FF FF FFIngizo la paletiNyekundu, kijani na bluu, baiti moja kila moja: #ffffff. Maingizo mawili ndilo jedwali dogo kabisa ambalo GIF inaweza kuwa nalo.
00 00 00Ingizo la paletiNyekundu, kijani na bluu, baiti moja kila moja: #000000. Maingizo mawili ndilo jedwali dogo kabisa ambalo GIF inaweza kuwa nalo.
Kiendelezi cha udhibiti wa michoro Bloku ya hiari iliyoongezwa katika GIF89a. Hapa inafanya ingizo 0 la paleti kuwa angavu.
21Kitangulizi cha kiendelezi0x21 (“!”) hutangaza bloku ya kiendelezi.
F9Lebo ya udhibiti wa michoro0xF9 inaonyesha kwamba kiendelezi hiki ni kiendelezi cha udhibiti wa michoro.
04Ukubwa wa blokuBaiti 4 za mipangilio zinafuata.
01Bendera zilizounganishwaBiti ya chini kabisa ni bendera ya uwazi. Imewashwa, kwa hiyo fahirisi ya rangi angavu iliyo hapa chini inatumika.
00 00Muda wa kusubiriSehemu 0 za mia moja za sekunde. Ni muhimu kwa uhuishaji pekee.
00Fahirisi ya rangi angavuIngizo 0 la paleti huchorwa likiwa angavu kabisa.
00Kifungaji cha blokuBloku-ndogo yenye urefu sifuri inayofunga bloku.
Kielezo cha picha Mahali picha ilipo kwenye turubai na ukubwa wake.
2CKitenganishi cha picha0x2C (“,”) huanzisha picha.
00 00KushotoPicha inaanza 0 px kutoka ukingo wa kushoto wa turubai.
00 00JuuPicha inaanza 0 px kutoka ukingo wa juu wa turubai.
01 00Upana wa picha1 px.
01 00Urefu wa picha1 px.
00Bendera zilizounganishwaHakuna jedwali la rangi la ndani, haina interlace. Picha inatumia paleti ya jumla.
Data ya picha Pikseli, zimebanwa kwa LZW na kugawanywa katika bloku-ndogo za hadi baiti 255.
02Ukubwa wa chini wa msimbo wa LZW2, kwa hiyo misimbo iliyobanwa huanza na upana wa biti 3.
02Ukubwa wa bloku-ndogoBaiti 2 za data iliyobanwa zinafuata.
44 01Pikseli zilizobanwaMisimbo ya LZW iliyopangwa kuanzia biti ya chini kabisa. Tazama jinsi inavyosimbuliwa hapa chini.
00Kifungaji cha blokuBloku-ndogo yenye urefu sifuri inayofunga bloku.
Trailer Baiti moja inayoashiria mwisho wa faili.
3BTrailer0x3B (“;”) humaliza faili.

Ndani ya baiti za bendera

Kila moja ya baiti tatu huhifadhi mipangilio kadhaa midogo. Biti 7 ndiyo ya kushoto kabisa.

Kielezo cha skrini ya kimantiki 0x80
1Jedwali la rangi la jumla lipo
000Azimio la rangi
0Paleti imepangwa kwa umuhimu
000Ukubwa wa jedwali: maingizo 2^(n+1)
Kiendelezi cha udhibiti wa michoro 0x01
000Imehifadhiwa
000Njia ya kuondoa (disposal)
0Subiri ingizo la mtumiaji
1Uwazi umewashwa
Kielezo cha picha 0x00
0Jedwali la rangi la ndani lipo
0Interlaced
0Paleti imepangwa kwa umuhimu
00Imehifadhiwa
000Ukubwa wa jedwali la ndani

Jinsi baiti mbili zinavyobeba pikseli moja

Kwa ukubwa wa chini wa msimbo wa 2, decoder husoma misimbo ya biti 3. Msimbo 4 husafisha jedwali, msimbo 5 humaliza picha, na misimbo 0 hadi 3 ni maingizo ya paleti. Baiti 44 01 husomwa kuanzia biti ya chini kabisa:

0x44 010001000x01 00000001

  1. 001100 = 4Clear: anza na jedwali jipya
  2. 000000 = 0Pikseli: ingizo 0 la paleti
  3. 101101 = 5Mwisho wa picha
  4. 0000000 Biti za kujaza zisizotumika

Picha kubwa zaidi hutumia mbinu hiyohiyo: kila msimbo mpya unawakilisha mfululizo mrefu kwa pikseli moja kuliko uliotangulia, kwa hiyo GIF angavu ya 1000×1000 inachukua baiti 1,743 tu.

Inaweza kuwa ndogo zaidi?

Ndiyo, ukiondoa sehemu ambazo decoder huvumilia zikikosekana. Tulijaribu kila lahaja kwenye injini tatu za vivinjari na kwenye Pillow, na tukarekodi zilichochora.

UkubwaLahajaChromiumFirefoxWebKitPillow
43Faili ya kawaida kwenye ukurasa huu.AngavuAngavuAngavuAngavu
42Hakuna baiti ya trailer. Decoder husimama mwisho wa data hata hivyo.AngavuAngavuAngavuAngavu
37Hakuna paleti kabisa. Bado ni halali: maelezo rasmi ya GIF yanaruhusu decoder kutumia paleti yake, na fahirisi 0 ni angavu hata hivyo.AngavuAngavuAngavuAngavu
36Hakuna paleti wala trailer.AngavuAngavuAngavuAngavu
35Hakuna bloku ya uwazi: pikseli huchorwa kwa rangi 0 ya paleti, yaani nyeupe.NyeupeNyeupeNyeupeNyeupe
35Umbizo la 1987. Halina njia ya kuweka alama kwamba rangi ni angavu.NyeupeNyeupeNyeupeNyeupe
34Bloku ya uwazi ipo, lakini hakuna pikseli zilizobanwa.AngavuAngavuAngavuHitilafu
33Ileile, bila trailer.AngavuAngavuAngavuHitilafu
29Hakuna paleti wala uwazi. Kila injini huchagua rangi yake.NyeusiNyeupeAngavuNyeusi
26Picha isiyo na data iliyobanwa kabisa.AngavuAngavuAngavuHitilafu
14Kichwa, ukubwa wa turubai na trailer tu. Hakuna picha ndani yake.AngavuHitilafuAngavuHitilafu

Tumia baiti 43 inapobidi ifanye kazi kila mahali. Baiti 37 bado ni GIF halali na ilikuwa angavu kwenye kila injini tuliyojaribu. Chini ya hapo unategemea uvumilivu wa decoder, na faili ya baiti 29 inaonyesha jinsi injini zinavyotofautiana.

Ilikaguliwa tarehe 23 Septemba 2026 kwa Chromium 153.0.8010.12, Firefox 155.0, WebKit 26.6, Pillow 12.2.0.

Tengeneza ya ukubwa wowote

Angavu au rangi moja, kuanzia 1×1 hadi 65535×65535. Inatengenezwa kwenye kivinjari chako; hakuna kinachotumwa kwenye seva.

Jaza
Ukubwa wa kawaida

1×1 · Baiti 43

Pakua GIF

Itoe kutoka kwenye stack yako

Vipande 173 vya msimbo vilivyo tayari kuendeshwa. Chagua chako: kila kimoja hujibu kwenye njia unayochagua kwa jibu la image/gif. Ukibadilisha ukubwa au rangi hapo juu, vipande vinatumia GIF hiyo.

Elixir, Erlang & Gleam

Express JavaScript

Sakinisha
npm i express
Faili
server.mjs
Endesha
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);

Tuliendesha kipande hiki na kulinganisha baiti kilizorudisha. Fungua ukurasa

Inatumika kwa nini

  • Tracking pixel na beacon: seva hurekodi ombi na kujibu kwa picha halali ndogo kabisa.
  • Vishika-nafasi (placeholder) vya picha zinazopakiwa kwa kuchelewa (lazy-load), ili tagi ya img iwe halali kabla chanzo halisi hakijafika.
  • Viweka-nafasi (spacer) vya ukubwa maalum kwenye barua pepe za HTML, ambako CSS haiungwi mkono kikamilifu.
  • Majaribio na mock zinazohitaji picha halisi bila kubeba faili ya picha.

Tracking pixel hazitegemewi kama zinavyoonekana

Apple Mail hupakua mapema picha za mbali kupitia proxy wakati Mail Privacy Protection imewashwa, kwa hiyo “open” iliyorekodiwa huenda haikutokana na mtu halisi. Gmail pia huchukua picha kupitia proxy yake na kuzihifadhi kwenye cache. Programu nyingi za barua pepe huzuia picha za mbali kwa chaguo-msingi. Kwa takwimu za ukurasa, navigator.sendBeacon() au jibu la 204 No Content mara nyingi hufaa zaidi kuliko picha.

Maswali

Kwa nini inaitwa tupu ilhali ina pikseli?
GIF lazima iwe na angalau pikseli moja. Hii ni 1×1 na rangi yake pekee imewekwa alama kuwa angavu, kwa hiyo hakuna kinachoonekana.
Je, faili ya baiti 43 ni halali?
Ndiyo. Inafuata kikamilifu maelezo rasmi ya GIF89a, na kila injini kwenye jedwali lililo juu huichora ikiwa angavu.
Kwa nini GIF na si PNG au WebP?
Ni ndogo kuliko PNG angavu ndogo kabisa, na kila kivinjari, programu ya barua pepe na maktaba ya picha ya miaka 35 iliyopita inaweza kuisoma.
Nitumie data URI au faili?
Data URI huokoa ombi moja na inafaa kwa placeholder na CSS. Faili au endpoint inahitajika pale ombi lenyewe ndilo lengo, kama kwa tracking pixel.
Nitume Content-Type gani?
image/gif. Ongeza Cache-Control: no-store ikiwa kila ombi lazima lifike kwenye seva yako.