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()

 

posted @ 2023-10-25 16:53  Levice  阅读(312)  评论(0编辑  收藏  举报