要将图片转换成base64格式,需要使用Python内置的base64模块。其中有两个函数可以帮助我们实现这个功能:b64encode和b64decode。
具体步骤如下:
- 读取图片
使用Python的Pillow库中的Image模块,打开需要转换成base64的图片:
from PIL import Image
# 打开图片
with Image.open('image.jpg') as img:
# image.jpg 是需要转换成base64格式的图片路径,可以根据实际情况修改
img.show() # 显示图片
- 将图片转换为bytes格式
使用open函数打开图片后,我们需要将其转换为bytes格式。
with open('image.jpg', 'rb') as image_file:
encoded_string = base64.b64encode(image_file.read())
print(encoded_string)
- 将bytes格式转换为base64格式
使用base64模块中的b64encode函数,将bytes格式的图片转换为base64格式。
import base64
with open("image.jpg", "rb") as image_file:
encoded_string = base64.b64encode(image_file.read())
print(encoded_string)
- 将转换后的base64字符串传给前端
将转换后的base64字符串传给前端需要在HTML代码的标签中添加属性,如下:
<img src="data:image/png;base64,iVBORw0KGg......" />
其中,data:image/png;base64,
是必须的,表示使用base64编码的图片格式是png。需要根据实际情况替换为其他图片格式,如jpeg。
示例一:将本地图片转换为base64
import base64
with open("image.jpg", "rb") as image_file:
encoded_string = base64.b64encode(image_file.read())
# 输出转换后的base64字符串
print(encoded_string[:10])
# 将转换后的base64字符串传给前端
html = '<img src="data:image/png;base64,' + encoded_string.decode('utf-8') + '" />'
print(html)
示例二:将URL图片转换为base64
import requests
import base64
url = 'https://example.com/image.jpg'
response = requests.get(url)
if response.status_code == 200:
image_bytes = response.content
# 将图片bytes转换为base64
encoded_string = base64.b64encode(image_bytes)
# 输出转换后的base64字符串
print(encoded_string[:10])
# 将转换后的base64字符串传给前端
html = '<img src="data:image/png;base64,' + encoded_string.decode('utf-8') + '" />'
print(html)
else:
print('Failed to fetch image')
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python将图片转base64,实现前端显示 - Python技术站