当前位置: 首页 > wzjs >正文

天津智能网站建设哪里有营口建网站的公司

天津智能网站建设哪里有,营口建网站的公司,软件测试流程及规范,怎么看一个网站用什么程序做的当我们的python GuI在开发时。经常会用到图片作为背景,但是在打包后再启动GUI后却发现:原先调试时好端端的背景图片竟然不翼而飞或者直接报错。这说明图片没有被pyinstaller一起打包…… 要解决这个问题很简单,就是更改图片的存储方式。 tk…

         当我们的python GuI在开发时。经常会用到图片作为背景,但是在打包后再启动GUI后却发现:原先调试时好端端的背景图片竟然不翼而飞或者直接报错。这说明图片没有被pyinstaller一起打包……

要解决这个问题很简单,就是更改图片的存储方式。

tkinter设置图片为背景

        首先,无论如何,要想导入并在GUI中显示图片,我们都要用到pilllow这个库

pillow获取方式

pip install pillow

正常显示思路

  1.  使用pillow Image下的open方法读取给定路径下(一般是同级目录,只需要指定文件名)的图片
  2.  使用pillow的ImageTk(专门用作于tkinter交互的图像处理工具)将其转换为tkinter类型图片
  3.  在tkinter中创建一个和窗口一样大的canvas将image传入作为背景图片

代码

import tkinter as tk
################################
#使用pillow读取显示图片
from PIL import Image,ImageTk
################################
window_width,window_height=500,300
root=tk.Tk()
image=Image.open('背景.jpg').resize((window_width,window_height))
backgroud_image=ImageTk.PhotoImage(image)
root.title('测试')
root.geometry(f'{window_width}x{window_height}')
main_canvas=tk.Canvas(root,width=window_width,height=window_height)
main_canvas.create_image(0,0,anchor='nw',image=backgroud_image)
main_canvas.pack(fill='both',expand=True)
root.mainloop()

效果: 

这是按照上述思路运行代码后的效果,接下来我们使用pyinstaller试着将其打包成一个exe文件

打包方法可以见这篇文章:https://blog.csdn.net/weixin_73953650/article/details/146621947?fromshare=blogdetail&sharetype=blogdetail&sharerId=146621947&sharerefer=PC&sharesource=weixin_73953650&sharefrom=from_linkhttps://blog.csdn.net/weixin_73953650/article/details/146621947?fromshare=blogdetail&sharetype=blogdetail&sharerId=146621947&sharerefer=PC&sharesource=weixin_73953650&sharefrom=from_link

 打包后,我们运行该exe文件,报错:

报错原因很简单,就是无法找到背景.jpg这个文件,这是因为pyinstaller只能用来打包py文件

解决思路

        解决上述问题的办法很多,但是个人认为最简单的一种便是把图片转换成py文件即可,到这儿有小伙伴可能会问怎么把图片写入到py文件中呢?

        嘿嘿,这里我们其实只需要使用base64将图片encode成字符串,便可以实现上述操作,在用的时候将其从存储这个base64字符串的py文件中导入,然后再decode一下成bytes便可正常使用了……

图像转换为base64字符串

import base64
image=open('背景.jpg','rb')
base64_string=base64.b64encode(image.read())
image.close()
print(base64_string)

使用上述几行代码便可以实现将图片转换为base64_string

结果:

将base64字符串写入py文件 

写入文件很简单,只需在上述代码中使用open语句完成即可

import base64
image=open('背景.jpg','rb')
base64_string=base64.b64encode(image.read())
image.close()
with open('BackGround.py','w') as py:py.write(f'img={base64_string}')

结果:

说明:

  1. 千万不要手贱,随便增删上述结果中的任何一个字符,否则无法转回成图像!
  2. 在写入的字符串前加了一个img=是为了将其作为py文件中的变量,方便我们使用import调用

从py文件导入base64字符串并转换为图片

import base64
from BackGround import img
from io import BytesIO
from PIL import Image
image=Image.open(BytesIO(base64.b64decode(img)))

运行上述代码后,此时的image便又被转换为原始图像了

结果:

        然后,按照最开始正常显示的思路,我们将这个image实例经过ImageTK后再传入给tkinter的控件就可以了。

完整代码 

http://www.dtcms.com/wzjs/53545.html

相关文章:

  • 淘宝网站代理怎么做淘宝店铺怎么引流推广
  • 网站设计师接单宁波seo快速优化课程
  • 加强宣传阵地建设 高校 网站产品市场推广方案范文
  • 网站内链检测seo引擎搜索
  • 辽宁省兴城做网站的百度广告点击软件源码
  • 天津网站建设系统青岛seo建站
  • 麓谷网站建设东莞seo托管
  • 房地产网站互动设计公司互联网销售是什么意思
  • 网站建设企业建站要求网站公司网站建设
  • 柳州网站建设公成都高端网站建设哪家好
  • 电影网站怎么制作西安危机公关公司
  • 做平台网站多少钱搜狗推广登录
  • 营销网站报备关键词搜索指数查询工具
  • 免费创建网站的软件临沂做网站建设公司
  • 西安旅游攻略4日游网站页面关键词优化
  • 顶呱呱做网站网络seo优化
  • 网站后台更新怎么做外贸网站免费推广b2b
  • 美国设计网站网络推广和运营的区别
  • 做短袖的网站网站seo文章
  • 网站预算怎么做龙岗网络公司
  • asp网站安全怎么做东莞seo建站优化哪里好
  • 南京设计网站建设千部小黄油资源百度云
  • 怎么做物流网站网络营销的内容主要有哪些
  • 如何建设一家网站app优化网站
  • 网站基础功能介绍搜索引擎优化关键词
  • 四平网站建设哪家效果好百度人工客服在线咨询电话
  • 商城网站建设软件百度手机seo
  • 全国妇联官方网站儿童之家建设2345网址大全下载到桌面
  • 萧山网站优化房地产市场现状分析
  • 灌南县建设局网站seo公司