問題描述
如果我將影像 (jpg 或 png) 轉換為 base64,那麼它會更大,還是會有相同的大小?它會有多大?
建議在我的網站上使用 base64 編碼的影像嗎?
最佳解決方案
大約會增加 37%
Very roughly, the final size of Base64-encoded binary data is equal to 1.37 times the original data size
資料來源:http://en.wikipedia.org/wiki/Base64
次佳解決方案
這是 David Calhoun 的 a really helpful overview of when to base64 encode and when not to 。
基本答案= gzipped base64 編碼檔案在檔案大小與標準二進位制 (jpg /png) 大致相當。 Gzip 的二進位制檔案將具有較小的檔案大小。
Takeaway =編碼和載入你的 UI 圖示等方面有一些優勢,但是對於較大的影像來說這是不明智的。
第三種解決方案
在 base64 中會更大。
Base64 使用每位位元組 6 位對資料進行編碼,而二進位制使用每位位元組 8 位。而且,Base64 有一點點開銷。並不是所有的位都與 Base64 一起使用,因為它首先在僅能夠正確處理 non-binary 資料的系統上編碼二進位制資料。
這意味著編碼的影像將大約增加 25%,加上填充的不斷的開銷。
第四種方案
將影像編碼到 base64 將使其大約 30%。
請參閱有關 Data URI scheme 的維基百科文章中的詳細資訊,其中說明:
Base64-encoded data URIs are 1/3 larger in size than their binary equivalent. (However, this overhead is reduced to 2-3% if the HTTP server compresses the response using gzip)
第五種方案
一定會花費你更多的空間如果要使用 base64 編碼影像的頻寬。但是,如果您的網站有很多小影像,您可以透過將影像編碼為 base64 並將其放入 html 來減少頁面載入時間。以這種方式,客戶端瀏覽器不需要與影像進行很多連線,而是將它們放在 html 中。
參考文獻
注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。