PIL剪贴板图像转Base64字符串

5 投票
1 回答
4539 浏览
提问于 2025-04-18 17:23

我想从剪贴板获取一张图片,并把它的数据转换成一种叫做base64的编码字符串,这样我就可以把它放进HTML的img标签里。

我试过以下方法:

from PIL import ImageGrab
from base64 import encodestring
img = ImageGrab.grabclipboard()
imgStr = encodestring(img.fp.read())

还有其他一些组合,但都没有正确显示出图片。

我在这方面的文档上遇到了一些困难;有没有人知道怎么做到这一点?

1 个回答

10

ImageGrab.grabclipboard() 这个函数会返回一个 Image 对象。你需要把它转换成一个大家都知道的图片格式,比如 jpeg 或 png,然后再把得到的字符串用 base64 编码,这样才能在 HTML 的 img 标签中使用:

import cStringIO

jpeg_image_buffer = cStringIO.StringIO()
image.save(jpeg_image_buffer, format="JPEG")
imgStr = base64.b64encode(jpeg_image_buffer.getvalue())

(这个回答已经被编辑过,以修正错误)。

撰写回答