当前位置: 首页 > 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/313009.html

相关文章:

  • 中国企业网聚焦中原优化课程体系
  • html导航网站源码世界十大搜索引擎排名
  • 设计网站大全有哪些郑州百度推广哪家好
  • 上海建设摩托官方网站网站seo服务商
  • 高端网站建设的市场分析网站seo推广公司靠谱吗
  • 网站备案如何转移aso优化师主要是干嘛的
  • 1688电脑网页版seo是什么公司
  • 营口品牌网站建设济南seo
  • 网站怎么做参考文献长沙电商优化
  • 厦门建设网站企业太原seo优化公司
  • 高层网络架构郑州企业网站seo
  • 织梦模板网站安卓神级系统优化工具
  • 北京网站改版哪家好郑州网站顾问
  • 论企业网站建设的好处的文献考研比较厉害的培训机构
  • 有域名了怎么做网站武汉网站快速排名提升
  • 自建网站模板文山seo
  • 山东饰品行业网站开发制作一个网站需要多少费用
  • 金乡网站建设哪家便宜百度指数官网移动版
  • 在线听音乐网站建设seo优化啥意思
  • 找人做网站源代码会给你吗2023最新15件重大新闻
  • 寺庙做网站焊工培训内容有哪些
  • 网站开发价格明细热狗seo顾问
  • wordpress网站打开很卡广告推广方式
  • 娱乐网站设计多少行业seoyoon
  • 做电子商务网站 语言搜索优化师
  • 做套图下载的网站源码做一个公司网站需要多少钱
  • 网站的服务内容域名注册腾讯云
  • 牡丹江疫情最新要求长沙优化排名推广
  • dw中旅游网站怎么做推广app是什么工作
  • 国外购物平台排行榜seo优化教程视频