用Python 擷取圖片的Base64編碼,原始碼如下:
代碼如下 |
複製代碼 |
#!/usr/bin/env python # -*- coding: utf-8 -*- ''' # base64-pic.py '''
import os, base64
icon = open('ya.png','rb') iconData = icon.read() iconData = base64.b64encode(iconData) LIMIT = 60 liIcon = [] while True: sLimit = iconData[:LIMIT] iconData = iconData[LIMIT:] liIcon.append(''%s'' %sLimit) if len(sLimit) < LIMIT: break print os.linesep.join(liIcon) |
python的base64編碼圖片
很多年以前,曾經儲存過一個頁面,但發現圖片並沒有以檔案的形式儲存下來,開啟頁面時圖片卻有顯示,
開始以為是js玩的花招(因為裡面一大堆js跳來跳去),連結到了其它地方,調查後發現原始碼裡有一大段看不懂的編碼,
雖然估計這段代碼就是圖片,受限於當時的視野,百思不得其解~
現在終於明白了!python的base64編碼圖片 - (^_^) - 安靜
測試例子,把文字轉成base64編碼
>>> import base64
>>> ls_s='字串文本'
>>> ls_t=base64.b64encode(ls_s) #轉換常值內容到base64
>>> print ls_t
19a3+7SuzsSxvg==
>>> print base64.b64decode(ls_t) #解碼
字串文本
>>>
把圖片內容轉成base64編碼
import base64
f=open(r'x:1.jpg','rb') #二進位方式開啟圖檔案
ls_f=base64.b64encode(f.read()) #讀取檔案內容,轉換為base64編碼
f.close()
把編碼文本寫入一個txt檔案
fw=open(r'x:1.txt','w') #開啟一個空白文字檔,準備寫入
fw.write(ls_f)
fw.flush()
fw.close()
網頁的表達
<html><body><img src="data:image/jpeg;base64,這裡放的是上面寫入的1.txt 的內容" /></body></html>
注意 image/jpeg 如果圖片是其它類型的,這裡也要修改; image/png、image/gif、image/bmp 等
data: URI定義於IETF標準的RFC 2397
data: URI的基本使用格式如下:
data:[<MIME-type>][;base64|charset=some_charset],<data>
最後做個執行個體,把這段儲存為htm檔案,用瀏覽器開啟看看是不是一個圖,
<HTML><BODY><img
src="data:image/bmp;base64,Qk0eAgAAAAAAALYAAAAoAAAAEgAAABIAAAABAAgAAAAAAAAAAA DEDgAAxA4AACAAAAAgAAAAFSph/ySn4f8jRGP/mt70/zg1M/9DqMr/YWJg/yZqtf8EAwP/Xouz/5O qpP81Vn7/O4ut/xQqQP8TUJL/TmaU/y9ylv8nWKH/g3Z1/x3d9v+JvNj/LCYk/yQcGf8Nb7T/HUKV /w0bJ/8XW7L/YNT7/7b1/P+Niof/I43F/////wAfFhYVFhUWFhYVFRUVFhUWFR8AABYCBwcYARgJC wQNDQICDQ0NBAAABAIaEQcHCwsNDQICBA0NDQIEAAAEAgcHHg4CCw4eFAIPAg0NAgQAAAQLBwceDg sQEQMJHh4GDQ0CBAAAFQsaGgcRDwULCw8UCQ0CDQsEAAAEAAcREQ4LCQEXDgAAAQIZEAQAABUCGAc RGAAJAxsbDAsKAhkQBAAAFQwYGAcHAAMDAxQUFAodDQIVAAAWHgEYGB4YAwMDHBwDCgYNDRUAABUQ AQEYBx4RFBQCFA8CBAACFQAABAgeAR4RAREZAAAJFA4ADQsVAAAECBkBAR4FHhEFHBwUCgoCAhUAA BUICB4eHgEHHBwcHAMUCgICFQAAFQgIDQEeEwEPAwMUCQkAAgwWAAACCAgIAQETExoAGhcXHg4TGR UAABUGFggZDAUFBQwMEBAMBQ8EBgAAHwQKEhISEhISEhIdEhISHRIfAAA=" /></BODY></HTML>
可在Chrome、firefox、Opera、ie8裡使用
這裡杯具來了,經測試居然不能在ie6中使用,可印象中那個應該是ie一族的,可能是ie5
查下資料,ie8也是有限支援32K以內,ie6/ie7不支援,而ie5居然是率先開始支援的(因為效率安全問題在ie6被棄用了)。
有點美中不足啊~ python的base64編碼圖片 - (^_^) - 安靜
參考
網頁截圖 Chrome外掛程式
https://chrome.google.com/extensions/detail/ckibcdccnfeookdmbahgiakhnjcddpki?itemlang=zh-CN
Python中進行Base64編碼和解碼
http://blog.csdn.net/lxdcyh/archive/2009/03/24/4021476.aspx
JavaScript 圖片預覽效果 2
http://www.wolaikanshu.cn/Article/web/htmlcss/201002/39292.html