emptygif
ਭਾਸ਼ਾ: ਪੰਜਾਬੀ

ਸਭ ਤੋਂ ਛੋਟੀ ਪਾਰਦਰਸ਼ੀ GIF 43 ਬਾਈਟ ਦੀ ਹੈ।

ਪੂਰੀ ਫਾਈਲ ਇਹੀ ਹੈ। ਕੋਈ ਵੀ ਬਾਈਟ ਚੁਣ ਕੇ ਵੇਖੋ ਕਿ ਉਹ ਕੀ ਕਰਦੀ ਹੈ, ਫਿਰ ਫਾਈਲ ਕਾਪੀ ਕਰੋ, ਡਾਊਨਲੋਡ ਕਰੋ, ਹੌਟਲਿੰਕ ਕਰੋ ਜਾਂ ਆਪਣੇ ਕੋਡ ਤੋਂ ਸਰਵ ਕਰੋ।

43 ਬਾਈਟ ਦੀ GIF, ਵੱਡੀ ਕਰਕੇ: ਇੱਕ ਪਾਰਦਰਸ਼ੀ ਪਿਕਸਲ
0000
0010
0020
1×1.gif ਡਾਊਨਲੋਡ ਕਰੋ

R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==

ਹਰ ਬਾਈਟ ਕੀ ਕਰਦੀ ਹੈ

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 ਬਾਈਟ ਦੇ ਸਬ-ਬਲਾਕਾਂ ਵਿੱਚ ਵੰਡੇ ਗਏ ਹਨ।
02LZW ਘੱਟੋ-ਘੱਟ ਕੋਡ ਆਕਾਰ2, ਇਸ ਲਈ ਕੰਪ੍ਰੈੱਸਡ ਕੋਡ 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 ਅਣਵਰਤੇ ਪੈਡਿੰਗ ਬਿੱਟ

ਵੱਡੇ ਚਿੱਤਰ ਵੀ ਇਹੀ ਤਰੀਕਾ ਵਰਤਦੇ ਹਨ: ਹਰ ਨਵਾਂ ਕੋਡ ਪਿਛਲੇ ਨਾਲੋਂ ਇੱਕ ਪਿਕਸਲ ਲੰਬੀ ਲੜੀ ਨੂੰ ਦਰਸਾਉਂਦਾ ਹੈ, ਇਸ ਲਈ 1000×1000 ਦੀ ਪਾਰਦਰਸ਼ੀ GIF ਸਿਰਫ਼ 1,743 ਬਾਈਟ ਲੈਂਦੀ ਹੈ।

ਕੀ ਇਹ ਹੋਰ ਛੋਟੀ ਹੋ ਸਕਦੀ ਹੈ?

ਹਾਂ, ਜੇ ਤੁਸੀਂ ਉਹ ਹਿੱਸੇ ਹਟਾ ਦਿਓ ਜਿਨ੍ਹਾਂ ਦੀ ਗ਼ੈਰਮੌਜੂਦਗੀ ਡੀਕੋਡਰ ਬਰਦਾਸ਼ਤ ਕਰ ਲੈਂਦੇ ਹਨ। ਅਸੀਂ ਹਰ ਵੇਰੀਐਂਟ ਤਿੰਨ ਬ੍ਰਾਊਜ਼ਰ ਇੰਜਣਾਂ ਅਤੇ Pillow ਨੂੰ ਦਿੱਤਾ ਅਤੇ ਜੋ ਉਨ੍ਹਾਂ ਨੇ ਬਣਾਇਆ ਉਹ ਦਰਜ ਕੀਤਾ।

ਆਕਾਰਵੇਰੀਐਂਟChromiumFirefoxWebKitPillow
43ਇਸ ਪੰਨੇ ਦੀ ਮਿਆਰੀ ਫਾਈਲ।ਪਾਰਦਰਸ਼ੀਪਾਰਦਰਸ਼ੀਪਾਰਦਰਸ਼ੀਪਾਰਦਰਸ਼ੀ
42ਟ੍ਰੇਲਰ ਬਾਈਟ ਨਹੀਂ। ਡੀਕੋਡਰ ਉਂਝ ਵੀ ਡਾਟਾ ਦੇ ਅੰਤ ’ਤੇ ਰੁਕ ਜਾਂਦੇ ਹਨ।ਪਾਰਦਰਸ਼ੀਪਾਰਦਰਸ਼ੀਪਾਰਦਰਸ਼ੀਪਾਰਦਰਸ਼ੀ
37ਕੋਈ ਪੈਲੇਟ ਹੀ ਨਹੀਂ। ਫਿਰ ਵੀ ਵੈਧ: ਸਪੈਸੀਫਿਕੇਸ਼ਨ ਡੀਕੋਡਰਾਂ ਨੂੰ ਆਪਣਾ ਪੈਲੇਟ ਵਰਤਣ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦੀ ਹੈ, ਅਤੇ ਇੰਡੈਕਸ 0 ਉਂਝ ਵੀ ਪਾਰਦਰਸ਼ੀ ਹੈ।ਪਾਰਦਰਸ਼ੀਪਾਰਦਰਸ਼ੀਪਾਰਦਰਸ਼ੀਪਾਰਦਰਸ਼ੀ
36ਨਾ ਪੈਲੇਟ, ਨਾ ਟ੍ਰੇਲਰ।ਪਾਰਦਰਸ਼ੀਪਾਰਦਰਸ਼ੀਪਾਰਦਰਸ਼ੀਪਾਰਦਰਸ਼ੀ
35ਪਾਰਦਰਸ਼ਤਾ ਬਲਾਕ ਨਹੀਂ: ਪਿਕਸਲ ਪੈਲੇਟ ਦੇ ਰੰਗ 0, ਯਾਨੀ ਚਿੱਟੇ, ਵਿੱਚ ਬਣਦਾ ਹੈ।ਚਿੱਟਾਚਿੱਟਾਚਿੱਟਾਚਿੱਟਾ
351987 ਦਾ ਫਾਰਮੈਟ। ਇਸ ਵਿੱਚ ਕਿਸੇ ਰੰਗ ਨੂੰ ਪਾਰਦਰਸ਼ੀ ਨਿਸ਼ਾਨਬੱਧ ਕਰਨ ਦਾ ਕੋਈ ਤਰੀਕਾ ਨਹੀਂ।ਚਿੱਟਾਚਿੱਟਾਚਿੱਟਾਚਿੱਟਾ
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 ਤੋਂ 65535×65535 ਤੱਕ। ਇਹ ਤੁਹਾਡੇ ਬ੍ਰਾਊਜ਼ਰ ਵਿੱਚ ਬਣਦੀ ਹੈ; ਕੁਝ ਵੀ ਅੱਪਲੋਡ ਨਹੀਂ ਹੁੰਦਾ।

ਭਰਾਈ
ਆਮ ਆਕਾਰ

1×1 · 43 ਬਾਈਟ

GIF ਡਾਊਨਲੋਡ ਕਰੋ

ਆਪਣੇ ਸਟੈਕ ਤੋਂ ਸਰਵ ਕਰੋ

ਚਲਾਉਣ ਲਈ ਤਿਆਰ 173 ਸਨਿੱਪਟ। ਆਪਣਾ ਚੁਣੋ: ਹਰ ਇੱਕ ਤੁਹਾਡੇ ਚੁਣੇ ਪਾਥ ’ਤੇ image/gif ਰਿਸਪਾਂਸ ਦਿੰਦਾ ਹੈ। ਜੇ ਤੁਸੀਂ ਉੱਪਰ ਆਕਾਰ ਜਾਂ ਰੰਗ ਬਦਲਿਆ ਹੈ, ਤਾਂ ਸਨਿੱਪਟ ਉਹੀ GIF ਵਰਤਦੇ ਹਨ।

Elixir, Erlang & Gleam

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);

ਅਸੀਂ ਇਹ ਸਨਿੱਪਟ ਚਲਾਇਆ ਅਤੇ ਇਸ ਵੱਲੋਂ ਵਾਪਸ ਕੀਤੀਆਂ ਬਾਈਟਾਂ ਦੀ ਤੁਲਨਾ ਕੀਤੀ। ਪੰਨਾ ਖੋਲ੍ਹੋ

ਇਹ ਕਿਸ ਕੰਮ ਆਉਂਦੀ ਹੈ

  • ਟ੍ਰੈਕਿੰਗ ਪਿਕਸਲ ਅਤੇ ਬੀਕਨ: ਸਰਵਰ ਬੇਨਤੀ ਨੂੰ ਲੌਗ ਕਰਦਾ ਹੈ ਅਤੇ ਸਭ ਤੋਂ ਛੋਟੇ ਵੈਧ ਚਿੱਤਰ ਨਾਲ ਜਵਾਬ ਦਿੰਦਾ ਹੈ।
  • lazy-load ਹੋਣ ਵਾਲੇ ਚਿੱਤਰਾਂ ਲਈ ਪਲੇਸਹੋਲਡਰ, ਤਾਂ ਜੋ ਅਸਲ ਸਰੋਤ ਆਉਣ ਤੋਂ ਪਹਿਲਾਂ ਵੀ img ਟੈਗ ਵੈਧ ਰਹੇ।
  • HTML ਈਮੇਲ ਵਿੱਚ ਨਿਸ਼ਚਿਤ ਆਕਾਰ ਦੇ ਸਪੇਸਰ, ਜਿੱਥੇ CSS ਸਹਾਇਤਾ ਅਧੂਰੀ ਹੈ।
  • ਟੈਸਟ ਅਤੇ mock, ਜਿਨ੍ਹਾਂ ਨੂੰ ਕੋਈ ਚਿੱਤਰ ਫਾਈਲ ਨਾਲ ਰੱਖੇ ਬਿਨਾਂ ਅਸਲ ਚਿੱਤਰ ਚਾਹੀਦਾ ਹੈ।

ਟ੍ਰੈਕਿੰਗ ਪਿਕਸਲ ਜਿੰਨੇ ਭਰੋਸੇਯੋਗ ਲੱਗਦੇ ਹਨ, ਓਨੇ ਨਹੀਂ

ਜਦੋਂ Mail Privacy Protection ਚਾਲੂ ਹੋਵੇ, Apple Mail ਰਿਮੋਟ ਚਿੱਤਰਾਂ ਨੂੰ ਪ੍ਰੌਕਸੀ ਰਾਹੀਂ ਪਹਿਲਾਂ ਹੀ ਲੋਡ ਕਰ ਲੈਂਦਾ ਹੈ, ਇਸ ਲਈ ਹੋ ਸਕਦਾ ਹੈ ਕੋਈ “ਓਪਨ” ਕਿਸੇ ਇਨਸਾਨ ਨੇ ਕੀਤਾ ਹੀ ਨਾ ਹੋਵੇ। Gmail ਵੀ ਚਿੱਤਰ ਆਪਣੀ ਪ੍ਰੌਕਸੀ ਰਾਹੀਂ ਲਿਆਉਂਦਾ ਅਤੇ ਕੈਸ਼ ਕਰਦਾ ਹੈ। ਕਈ ਕਲਾਇੰਟ ਡਿਫਾਲਟ ਤੌਰ ’ਤੇ ਰਿਮੋਟ ਚਿੱਤਰ ਬਲੌਕ ਕਰਦੇ ਹਨ। ਪੰਨੇ ਦੇ ਐਨਾਲਿਟਿਕਸ ਲਈ navigator.sendBeacon() ਜਾਂ 204 No Content ਰਿਸਪਾਂਸ ਅਕਸਰ ਚਿੱਤਰ ਨਾਲੋਂ ਬਿਹਤਰ ਰਹਿੰਦਾ ਹੈ।

ਸਵਾਲ

ਜਦੋਂ ਇਸ ਵਿੱਚ ਪਿਕਸਲ ਹੈ ਤਾਂ ਇਸਨੂੰ ਖਾਲੀ ਕਿਉਂ ਕਹਿੰਦੇ ਹਨ?
GIF ਵਿੱਚ ਘੱਟੋ-ਘੱਟ ਇੱਕ ਪਿਕਸਲ ਹੋਣਾ ਜ਼ਰੂਰੀ ਹੈ। ਇਹ ਫਾਈਲ 1×1 ਦੀ ਹੈ ਅਤੇ ਇਸਦਾ ਇੱਕੋ-ਇੱਕ ਰੰਗ ਪਾਰਦਰਸ਼ੀ ਨਿਸ਼ਾਨਬੱਧ ਹੈ, ਇਸ ਲਈ ਕੁਝ ਵੀ ਨਹੀਂ ਦਿਸਦਾ।
ਕੀ 43 ਬਾਈਟ ਦੀ ਫਾਈਲ ਵੈਧ ਹੈ?
ਹਾਂ। ਇਹ GIF89a ਸਪੈਸੀਫਿਕੇਸ਼ਨ ਦੀ ਪੂਰੀ ਪਾਲਣਾ ਕਰਦੀ ਹੈ, ਅਤੇ ਉੱਪਰਲੀ ਟੇਬਲ ਦਾ ਹਰ ਇੰਜਣ ਇਸਨੂੰ ਪਾਰਦਰਸ਼ੀ ਬਣਾਉਂਦਾ ਹੈ।
PNG ਜਾਂ WebP ਦੀ ਥਾਂ GIF ਕਿਉਂ?
ਇਹ ਸਭ ਤੋਂ ਛੋਟੀ ਪਾਰਦਰਸ਼ੀ PNG ਤੋਂ ਵੀ ਛੋਟੀ ਹੈ, ਅਤੇ ਪਿਛਲੇ 35 ਸਾਲਾਂ ਦਾ ਹਰ ਬ੍ਰਾਊਜ਼ਰ, ਈਮੇਲ ਕਲਾਇੰਟ ਅਤੇ ਇਮੇਜ ਲਾਇਬ੍ਰੇਰੀ ਇਸਨੂੰ ਪੜ੍ਹ ਸਕਦੀ ਹੈ।
ਮੈਂ data URI ਵਰਤਾਂ ਜਾਂ ਫਾਈਲ?
data URI ਇੱਕ ਬੇਨਤੀ ਬਚਾਉਂਦਾ ਹੈ ਅਤੇ ਪਲੇਸਹੋਲਡਰਾਂ ਅਤੇ CSS ਲਈ ਢੁਕਵਾਂ ਹੈ। ਜਦੋਂ ਬੇਨਤੀ ਆਪਣੇ ਆਪ ਵਿੱਚ ਮਕਸਦ ਹੋਵੇ, ਜਿਵੇਂ ਟ੍ਰੈਕਿੰਗ ਪਿਕਸਲਾਂ ਵਿੱਚ, ਤਾਂ ਫਾਈਲ ਜਾਂ ਐਂਡਪੁਆਇੰਟ ਚਾਹੀਦਾ ਹੈ।
ਮੈਨੂੰ ਕਿਹੜਾ Content-Type ਭੇਜਣਾ ਚਾਹੀਦਾ ਹੈ?
image/gif। ਜੇ ਹਰ ਬੇਨਤੀ ਦਾ ਤੁਹਾਡੇ ਸਰਵਰ ਤੱਕ ਪਹੁੰਚਣਾ ਜ਼ਰੂਰੀ ਹੈ, ਤਾਂ Cache-Control: no-store ਜੋੜੋ।