【Python案例】(八)如何将图片变成Bytes字节形式写入代码中

一、具体需求

最近,在用python的tkinter包做一个程序的可视化页面(GUI),但是遇到了问题就是我在GUI中导入的图片,因为换了点脑环境就打不来了,路径不一样。于是,我想着可以把这张图片以base64字节码的形式存入。

二、具体代码

import base64
import io
from PIL import Image,ImageTk
import tkinter as tk

thecode = b'R0lGODlh2AA0APcAAAgbOREcLhUlNS0vMiYbHXweHncmJnYsLlsnHz1BLFJRL2hnOwcdRgoeVgchSQckUxcpQjA5RV40QjxGR09RTXFxaWZcVJoSDYkbGpwUE5MbG5cXF5oPD6UNDawMDKoKB70EA7QKBbsFCrMMDLsKC7YHB6QSDasRDaYWCqwNEqQOErMMEqMTE6sSFKYYGrQUFbQTDY0hGrQrF4kdIpUdI6seIoclJpkmKJc4OJExMqcoKbgoKLs0Kac4OLc2NqgyLcMDA8oCAsUHCs8aD+keF/MeGss3CMgnFtkmFsg3Gtc2GNMsCuUjHOoiG+YmF+wqGMYnJsc4J9k5J8c4N9YwMOciIuc3Kc8fIbRNNp1gMNdEFtFND9hvGOVqHNJLL+RIKOdWLtBoL+pxLuNUGq08QYk9Qcs6QZdISIxK'
gif_file = base64.b64decode(thecode)

# 创建一个画布,这里非常经典,把图片转换为base64代码直接在程序中将其转化为图片导入GUI程序
canvas = tk.Canvas(window,width =2000, height = 100)
image = io.BytesIO(gif_file)
img = Image.open(image)
img =  ImageTk.PhotoImage(img)
canvas.create_image(400,50,image = img)
canvas.pack()

三、io.BytesIO

很多时候,数据读写不一定是文件,也可以在内存中读写。操作二进制数据,使用BytesIO。
BytesIO实现了在内存中读写bytes,我们创建一个BytesIO,然后写入一些bytes:

>>> from io import BytesIO
>>> f=BytesIO()
>>> f.write('中文'.encode('utf-8'))
6
>>> f.getvalue()
b'\xe4\xb8\xad\xe6\x96\x87'

输出:\xe4\xb8\xad\xe6\x96\x87,这是控制台信息输出窗口按照ascii(字节)编码输出utf8编码的字符串的结果。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值