📌  相关文章
📜  将 url 转换为 base64 图像 py - Python (1)

📅  最后修改于: 2023-12-03 15:39:13.656000             🧑  作者: Mango

将 URL 转换为 Base64 图像 Python

有时候我们需要在网页上嵌入一些图片,但是这些图片的来源并不是我们自己的服务器上,而是其他站点的图片链接。为了避免加载慢或者不稳定,我们可以将这些图片转换为 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 页面加载更加高效。