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

青岛网站设计公司联系方式新手做电商怎么起步

青岛网站设计公司联系方式,新手做电商怎么起步,网站开发的五个阶段,html5+css3 网站当我们的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/186711.html

相关文章:

  • 做网站需要了解什么软件aso优化榜单
  • 有什么做论文的网站怎么创建个人网站
  • 怎么做整人点不完的网站防疫管控优化措施
  • 凡客诚品官方网站的代码全网关键词搜索工具
  • 平面设计师的网站公司网站模板
  • 个人如果做网站赚钱网站seo整站优化
  • 唐河企业网站制作哪家好昆明seocn整站优化
  • 虎门响应式网站制作买域名
  • 域名过期了怎么办怎么找回网站技能培训班有哪些课程
  • 临沂手机网站建设济南网站优化
  • cctv5体育现场直播西安网络seo公司
  • 网站流量排名查询玉林网站seo
  • wordpress首页模板是哪个长安网站优化公司
  • 做网络投票网站好做吗十种营销方式
  • 新野网站建设免费建站的网站哪个好
  • 网站维护页面模版网络营销的一般流程
  • 个人网站做淘宝客犯法吗2021国内最好用免费建站系统
  • 北京设计网站的公司我的百度账号登录
  • ps做图 游戏下载网站有哪些优化设计方案
  • 青岛国家高新区建设局网站百度网盘云资源搜索引擎
  • 网站注册账号怎么做如何自己做推广
  • 经营性网站备案条件十大最靠谱培训机构
  • 和网站合作有哪些活动可以做广告公司推广软文
  • 深圳建网站公司 哪家售后服务最好巩义网站优化公司
  • wordpress开通多站点好处商业策划公司十大公司
  • 做了微网站抖音关键词排名优化软件
  • 江西哪里有做电商网站的公司汕头seo网络推广
  • 免费解析网站制作重庆seo顾问服务
  • 网站怎么做赚钱北京网
  • 网站收录是什么意思2022最新小学生新闻