python获取图片文件的base64码;获取文件的md5
一、在python编程中,当需要用到图片时,经常需要使用图片的base64码,如下代码可以拿去复用:
import base64 import os ''' 将图片文件,比如图标,背景转换成py文件便于打包 ''' def pic2py(picture_names, py_name): write_data = [] for picture_name in picture_names: filename = picture_name.replace('.', '_') with open("%s" % picture_name, 'rb') as r: b64str = base64.b64encode(r.read()) # 注意这边 b64str 一定要加上.decode() write_data.append('%s = "%s"\n' % (filename, b64str.decode())) with open(f'./{py_name}.py', 'w+') as f: for data in write_data: f.write(data) # 需要转码的图片: os.chdir(r'.\\') # 路径转为图像所在路径 # 待转换的图片的文件名,可以是多个,图片要放在上面那个路径下 pics = ['jdzz.gif'] #for i in range(70): # pics.append('d' + str(i) + ".png") # 将你的图片都输入进去 # 将pics里面的图片写到 image.py 中 pic2py(pics, 'image') print("转码完成...")
转码完成后,当前目录会生成一个image.py文件,所有图片的base64码都在里面,比如上面图片文件名是jdzz.gif,则imge.py中,变量“jdzz_gif”的值就是该图片的base64码,在要使用该图片base64码的py脚本中引用image.py文件就行了。
二、图片的base64经常和md5搭配使用,使用如下代码可以获得文件的md5
import hashlib def getmd5(i_name): full_path = r'D:\PycharmProjects\pythonProject\images' + '\\' + i_name #print(full_path) fd = open(full_path, "br") fcont = fd.read() fmd5 = hashlib.md5(fcont) #print(fmd5.hexdigest()) return fmd5.hexdigest()