说明:蓝色=命令名称python
浅绿=命令参数segmentfault
浅蓝=选项windows
紫色=目录ide
系统环境:windows XP SP3学习
python版本:Python 2.7.3测试
之前同事给了一个光棍节小游戏(http://segmentfault.com/game),最后一关是把二进制文本转换成图片。最近学习python,发现python很简单,代码以下:spa
- #!/usr/bin/env python
- #-*- coding:utf-8 -*-
- #Author:left_left
- import binascii
- import re
- def jpg2bin(data):
- b64 = binascii.b2a_base64(data)
- j = 0
- f = open('test.txt', 'w')
- for i in b64:
- f.write("".join([bin(int(binascii.b2a_hex(i), 16))[2:].rjust(8,'0'), " "]))
- j += 1
- if j % 6 == 0:
- f.write('\n')
- f.close()
- print "jpg to bin ok"
- def bin2jpg(data):
- result = re.split(r'[ \n]', data)
- b64 = ""
- for i in result:
- if i:
- hex_src = str(hex(int(i, 2)))[2:].rjust(2,"0")
- b64 = "".join([b64, binascii.a2b_hex(hex_src)])
- bin_data = binascii.a2b_base64(b64)
- f = open("new.jpg", 'wb')
- f.write(bin_data)
- f.close()
- print "jpg to bin ok"
- def main():
- f = open("test.jpg", "rb")
- data = f.read()
- jpg2bin(data)
- f.close()
- f = open("test.txt")
- data = f.read()
- bin2jpg(data)
- f.close()
- if __name__ == "__main__":
- main()
测试:3d
文件目录结构如图:blog
执行代码:游戏
目录结构:
test文本内容: