2012-11-12 63 views
0

好了,所以我知道我可以將圖像轉換爲base64,然後添加到我的HTML。 base64的問題是它產生的數據在我的情況下比我的png圖像文件大33%,這是一個最大壓縮的300KB css sprite。內嵌圖像無的base64

是否有任何方式,而不使用Base64發送圖像數據,然後將其組裝成在客戶機上的圖像?

我想發送十六進制的圖像數據,然後使用JavaScript將其轉換爲base64。似乎是可能的,但是令人難以置信的多餘,因爲它將立即從base64解碼回來,以供顯示。

任何想法?

+3

什麼問題是你想解決? – Sampson

+0

十六進制比bas64差得多,它將比原始文件大100%(一個8位字節是兩個十六進制字符)。 – Barmar

+0

謝謝巴爾馬我沒有意識到這一點。 –

回答

0

我只是做了一些測試,以檢查文件的大小,我發現沒有顯著差異。

的sizeof(gzip的(index.html的+ sprite.png))= 301KB

的sizeof(gzip的(index_inline_b64_sprite.html))= 302KB

雖然BASE64文本比PNG文件大約33%本身,一旦gzipped它似乎沒有任何顯着的差異。

一旦你認爲無論什麼解決方案可能會有嚴重的跨瀏覽器,甚至可能會把奇怪的十六進制安全問題附加到html文件中,在我看來,這似乎是一個更好的解決方案,只需堅持base64。

也感謝Barmar用於指出ASCII十六進制在HTML會大得多,我並沒有意識到,在第一。