![為什麼像 PNG 片段這樣的二進位檔案包含所有這些空格](https://rvso.com/image/1568488/%E7%82%BA%E4%BB%80%E9%BA%BC%E5%83%8F%20PNG%20%E7%89%87%E6%AE%B5%E9%80%99%E6%A8%A3%E7%9A%84%E4%BA%8C%E9%80%B2%E4%BD%8D%E6%AA%94%E6%A1%88%E5%8C%85%E5%90%AB%E6%89%80%E6%9C%89%E9%80%99%E4%BA%9B%E7%A9%BA%E6%A0%BC.png)
下面是一個 PNG 檔案第一部分的片段,只需在 Sublime Text 中開啟它並直接查看十六進位程式碼即可查看。
8950 4e47 0d0a 1a0a 0000 000d 4948 4452
0000 02e7 0000 0155 0806 0000 004c ed41
2b00 0000 0662 4b47 4400 ff00 ff00 ffa0
bda7 9300 0000 0774 494d 4507 d907 1209
3738 0601 8766 0000 2000 4944 4154 789c
ecbd 799c 6567 5de7 fff9 3ef7 5675 279d
a4b3 d008 1242 2288 c486 10e8 ee74 57a7
bb53 28a2 202e a8c1 0d07 d780 a8a3 8338
fc04 c601 45dc 1750 5161 1670 e437 0e71
5c90 4504 a549 77ba 7a65 0f20 8681 8140
423a 2b49 7aa9 aafb 7ce7 8fb3 dce7 3ce7
看來您可以透過刪除檔案中的空格來節省一些空間。我很想知道這是否是 PNG 的最佳化技術。或者也許有一些我不知道的優點或目的,讓這些 4 個字元序列由 1 個空格分隔。
答案1
文件中不存在空格。你所看到的並不是文字– 這是一個十六進位列表數位,並且無論中間是否有空格,數字都是相同的。所以還是四個位元組無論您將它們寫為89 50 4e 47
or89504e47
或 as(137, 80, 78, 71)
或確實為�PNG
。
您可能會看到這一點,因為 Sublime Text 偵測到文件的內容無法明智地顯示為文字。因此它選擇了另一種表示形式——每個位元組作為兩個十六進制數字。 (要獲得更好的範例,請查看此插入用於崇高文本。
回想起那個每一個檔案由位元組組成,位元組是十進制 0 到 255(或十六進制 0 到 FF)之間的數字。雖然文字編輯器一般來說將每個位元組顯示為一個字母,這不是唯一的方法。