Python擷取圖片的Base64編碼執行個體代碼及把圖片轉Base64編碼

來源:互聯網
上載者:User

用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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.