📜  pil image base64 (1)

📅  最后修改于: 2023-12-03 14:45:30.244000             🧑  作者: Mango

PIL Image 和 Base64

PIL(Python Imaging Library)是一个功能强大的Python图像处理库,它可以非常方便地对图像进行操作。而 Base64 是一种用于将二进制数据转换成 ASCII 字符串的编码格式,可以在网络传输中方便地传输二进制数据。在使用 PIL 的过程中,将 PIL 图像转换成 Base64 编码字符串可以方便地将图像嵌入到网页中,或者传输到其他应用程序中。

安装

PIL 很容易安装,使用 pip 即可:

pip install pillow
读取图像

使用 PIL 读取图像非常简单:

from PIL import Image

im = Image.open("image.jpg")
# do something with the image
im.show()

这段代码打开并显示了名为 image.jpg 的图像。我们可以使用 PIL 的各种方法对图像进行处理,比如修改大小、调整亮度、添加文字等。

转换成 Base64

要将 PIL 图像转换成 Base64 编码的字符串,我们需要先将图像转换成字节数组,然后将字节数组进行 Base64 编码。这可以使用 Python 内置的 base64 模块来实现:

from PIL import Image
import base64

im = Image.open("image.jpg")
with open("image.jpg", "rb") as f:
    img_bytes = f.read()
img_base64 = base64.b64encode(img_bytes).decode()

这段代码将名为 image.jpg 的图像转换成 Base64 编码字符串,并将其存储在 img_base64 变量中。

显示 Base64 图像

我们可以使用 HTML 和 CSS 将 Base64 编码的图像显示在网页中。具体来说,我们可以将 Base64 图像嵌入到一个 img HTML 元素的 src 属性中,并使用 CSS 指定 widthheight 属性:

<!DOCTYPE html>
<html>
<head>
    <title>Base64 Image Demo</title>
    <style>
        img {
            width: 500px;
            height: 500px;
        }
    </style>
</head>
<body>
    <img src="data:image/jpeg;base64,{{ img_base64 }}">
</body>
</html>

这段 HTML 代码将 Base64 图像嵌入到 img 标签的 src 属性中,并显示出来。需要注意的是,我们在 data URI 指定了图像的 MIME 类型(image/jpeg),以及使用了 Mustache 语法将 Python 变量嵌入到 HTML 中({{ img_base64 }})。

总结

这篇文章介绍了如何使用 PIL 将图像转换成 Base64 编码字符串,并在网页中显示。PIL 可以方便地对图像进行处理,而 Base64 编码可以方便地传输二进制数据。将两者结合起来,可以实现很多有趣的图像处理应用。