問題描述

如果我將影像 (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 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇