2011-06-16 63 views

回答

44

這應該做它在Python:

import base64 
encoded = base64.b64encode(open("filename.png", "rb").read()) 
+0

,看起來不錯。當我嘗試在CSS文件中使用結果時,Firefox目前告訴我圖像已損壞或被截斷,但我可能在某處出錯。 – 2011-06-16 17:32:02

+0

@Paul D. Waite:Base64輸出是什麼樣的,你如何在你的CSS中使用它? – BoltClock 2011-06-16 18:09:38

+0

@BoltClock:我得到的輸出是'iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs + 9AAAAP0lEQVQY02P4/fv3f1z4ypUrcDYD \ niIOMkQEyH6tCdDEQZkDWRZKJ6CajKEQ3BV0Mr4noGhiw6SbJjVhNJEYhAKztct58fLlaAAAAAElF \ nTkSuQmCC \ N'。在我的CSS文件,它看起來像'背景圖像:網址(數據:圖像/ PNG; BASE64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs + 9AAAAP0lEQVQY02P4/fv3f1z4ypUrcDYD \ niIOMkQEyH6tCdDEQZkDWRZKJ6CajKEQ3BV0Mr4noGhiw6SbJjVhNJEYhAKztct58fLlaAAAAAElF \ nTkSuQmCC \ n);'。 – 2011-06-16 18:43:59

4

這應該做到這一點在的Unix

b64encode filename.png X | sed '1d;$d' | tr -d '\n' > b64encoded.png 

通過b64encode產生的經編碼的圖像包括頁眉和頁腳和沒有線長於76個字符。這種格式在SMTP通信中是典型的。

要使編碼圖像可嵌入到HTML/CSS中,sedtr命令分別刪除頁眉/頁腳(第一行&最後一行)和所有換行符。

然後,只需簡單地使用長編碼字符串在HTML

<img src="data:image/png;base64,ENCODED_PNG"> 

CSS

url(data:image/png;base64,ENCODED_PNG) 
+1

在一些發行版中不包含'b64encode'。在這種情況下,你會想使用'uuencode -m',這是一個同義詞。 – matth 2016-02-03 07:24:20