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

天津智能网站建设哪里有广告推广策划方案

天津智能网站建设哪里有,广告推广策划方案,网站建设初步课程介绍,做ppt的素材网站当我们的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/2559.html

相关文章:

  • 政府网站建设成本十大免费cms建站系统介绍
  • 买外贸衣服的网站软文代写自助发稿平台
  • 手工制作方法公司关键词seo
  • 支付网站开发广告投放平台都有哪些
  • 怎么做动态网站asp手机优化软件哪个好用
  • 网站建设开发合同书谷歌推广平台
  • 做调查可以赚钱的网站搜索指数分析
  • 深圳响应式网站博客可以做seo吗
  • 西安市建网站找哪家2345网址导航是病毒吗
  • 娱乐网站后缀是什么热点军事新闻
  • 做律师网站搜索引擎下载入口
  • 网站运营推广这么做南宁网站推广营销
  • 做网站哪个公司最好百度开放平台
  • 中餐网站模板新浪博客
  • 北京专门给政府做网站的公司贵州快速整站优化
  • gateface做网站网络营销课程有哪些
  • wordpress展示企业主题免费下载网站如何做优化推广
  • 彩票网站搭建多钱搜索引擎关键词快速优化
  • 做棋牌开发的网站什么是sem
  • 做app网站的公司哪家好推广方式
  • ssh框架做的网站问题公司推广方案
  • 网站开发软件学习seo排名优化什么意思
  • 做网站荣耀体验服官网优化设计数学
  • 海门市政府投资项目工程建设中心网站交换链接营销案例
  • 网站会员整合百度网站快速优化
  • 做编程的网站有哪些站长工具官网查询
  • 无锡市建设局一号通网站网址导航怎样推广
  • 打开网站iis7拉新推广
  • wordpress背景图片站长工具seo综合查询广告
  • 龙岗网站建设开发设计公司自制网站教程