📅  最后修改于: 2023-12-03 15:39:13.656000             🧑  作者: Mango
有时候我们需要在网页上嵌入一些图片,但是这些图片的来源并不是我们自己的服务器上,而是其他站点的图片链接。为了避免加载慢或者不稳定,我们可以将这些图片转换为 Base64 编码字符串,直接嵌入 html 文件中,以达到减少请求的目的。
Python 带有 base64 模块,可以将二进制数据转换为 Base64 编码字符串。我们可以利用 requests 库来获取图片的二进制数据,再将其转换为 Base64 编码字符串。
下面是一个简单的函数,可以实现将指定 URL 的图片转换为 Base64 编码字符串的功能:
import requests
import base64
def url_to_base64(url):
res = requests.get(url)
image_bytes = res.content
base64_str = base64.b64encode(image_bytes).decode()
return base64_str
我们可以将函数嵌入 Flask 框架的路由视图函数中,以供 Web 页面调用。比如:
from flask import Flask
from flask import render_template
app = Flask(__name__)
@app.route('/image')
def image():
url = 'https://example.com/image.png'
base64_str = url_to_base64(url)
return render_template('image.html', base64_str=base64_str)
在我们的 html 模板中,可以直接使用 Base64 编码字符串作为图片的 src 属性:
<!DOCTYPE html>
<html>
<head>
<title>Base64 Image</title>
</head>
<body>
<img src="data:image/png;base64,{{ base64_str }}" />
</body>
</html>
在浏览器中访问这个路由,就可以看到由 URL 转换而来的 Base64 编码字符串图片了。
本文介绍了如何使用 Python 将 URL 转换为 Base64 图像,以减少请求和加速页面加载的时间。利用 Python 的 requests 库和 base64 模块,我们可以轻松地将远程图片转换为 Base64 编码字符串,让 Web 页面加载更加高效。