需要在嵌入式设备上全屏显示图像,使用pil显示图像时,只能通过系统的图像浏览器显示。所以使用Python自带的tkinter
 import Tkinter as tk     这句在Python3中已经改成了   import tkinter as tk

 top = Tk() #导入tk模块
from PIL import Image, ImageTk
image = Image.open("lenna.jpg")
photo = ImageTk.PhotoImage(image)
label = Label(top)
label.pack()
label.configure(image = photo )
top.mainloop()

在Ubuntu下需要安装:
sudo apt-get install python3-tk
sudo apt-get install python3-pil.imagetk
win下无需安装

使用PIL的原因是tkinter自己无法显示jpg图像

功能验证代码:

 #!/usr/bin/python3
#!/usr/local/bin/python3 from tkinter import *
from PIL import Image, ImageTk top = Tk() #导入tk模块
top.attributes("-fullscreen", True)
width=top.winfo_screenwidth()
height=top.winfo_screenheight()
print(width,height)
image = Image.open('d:/cur/proj/j20/3.jpg')
photo = ImageTk.PhotoImage(image.resize((width,height)))
label = Label(top)
label.pack(expand=YES,fill=BOTH) #让图像在中央填充
label.configure(image = photo )
top.mainloop()

完成功能验证后,编写了刷图像的程序:

 def display_thread():
global label,top
while True:
t1=time.time()
image = Image.open('d:/cur/proj/j20/3.jpg')
photo = ImageTk.PhotoImage(image.resize((width,height)))
#photo = ImageTk.PhotoImage(image)
label.configure(image = photo )
#top.update_idletasks()
time.sleep(0.03)
t2=time.time()
print(t2-t1)

发现图像显示出现了闪屏,而且帧率只有5~10帧,CPU占用率已达到单核90%
而实测image = Image.open('d:/cur/proj/j20/3.jpg')
仅需1ms,说明imagetk消耗时间长,无法满足30帧每秒的需求。

尚不知如何优化,换pyqt了

Python图像全屏显示的更多相关文章

  1. python Tkinter 全屏显示

    #! /usr/bin/env python # -*- coding: utf-8 -*- import Tkinter as tk class FullScreenApp(object): def ...

  2. PyQt5图像全屏显示

    Windows装这个:https://pypi.python.org/pypi/PyQt5Ubuntu输入这个:sudo apt-get install python3-pyqt5 或者直接输入:pi ...

  3. JavaScript:让浏览器全屏显示

    并不是所有人都会按F11让浏览器全屏显示~~~ 一.直接上代码 <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xh ...

  4. 在VC++6.0开发中实现全屏显示

    全屏显示是一些应用软件程序必不可少的功能.比如在用VC++编辑工程源文件或编辑对话框等资源时,选择菜单“View\Full Screen”,即可进入全屏显示状态,按“Esc”键后会退出全屏显示状态. ...

  5. Android 全屏显示的方法(不包含状态栏)

    我们都知道在Android中某些功能的实现往往有两种方法:一种是在xml文件中设置相应属性,另一种是用代码实现.同样Android实现全屏显示也可以通过这两种方法实现: 1.在AndroidManif ...

  6. Android 全屏显示

    Android全屏显示: @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInst ...

  7. QT5中全屏显示子窗口和取消全屏的方法

    问题描述:用QT5做了个MDI多窗体应用程序,想把子窗体全屏显示,用网上的方法,但总是遇到问题. 网上的解决方法原文在这:http://www.cnblogs.com/Rick-w/archive/2 ...

  8. 启动app时全屏显示Default.png

    一直很喜欢MJ的讲课视频,今天看了他的博客学到了些东西顺便记录下来. 在默认情况下,app显示Default.png时并非真正的"全屏显示",因为顶部的状态栏并没有被隐藏,比如下面 ...

  9. 【温故而知新-Javascript】窗口效果 (全屏显示窗口、定时关闭窗口)

    1.全屏显示窗口 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://ww ...

随机推荐

  1. JavaScript:对事件的反应

    <!DOCTYPE html><html><head><meta http-equiv="Content-Type" content=&q ...

  2. [洛谷]P3704-数字表格

    [洛谷]P3704-数字表格 妙啊,这又是一道反演题,而且个人感觉比较高级 传送门 大意 在\(N\times M\)的数表\(a\)中,\(a_{i,j}\)表示f((i,j)),其中\((i,j) ...

  3. VMware虚拟化NSX-Manager命令行更改admin用户密码

    1.1    登录到NSX-Manager命令行界面,输入用户名和密码登录到用户模式 Log in to the vSphere Client and select an NSX virtual ap ...

  4. 使用公共的存储过程实现repeater的分页

    当一个项目repeater分页多的时候使用公共的存储过程实现分页,是不错的选择 ALTER PROC [dbo].[P_Common_proc] -- 通用分页存储过程 @TableName varc ...

  5. iWebShop产品功能技术优势有什么?

    iwebshop基于iweb si 框架开发,在获得iweb si 技术平台支持的条件下,iwebshop可以轻松满足用户量级百万至千万级的大型电子商务网站的性能要求.站点的集群与分布式技术(分布式计 ...

  6. node解析post表单信息

    一共有4种解析方式 urlencoded.json.text .raw 发起请求的form表单中可以设置三种数据编码方式 application/x-www-form-urlencoded.multi ...

  7. python2.7练习小例子(八)

        8):题目:输出 9*9 乘法口诀表.     程序分析:分行与列考虑,共9行9列,i控制行,j控制列.     程序源代码: #!/usr/bin/python # -*- coding: ...

  8. Hive 函数之内置运算符

    本章介绍Hive的内置运算符.在Hive有四种类型的运算符: 关系运算符 算术运算符 逻辑运算符 复杂运算符 关系运算符 这些操作符被用来比较两个操作数.下表描述了在Hive中可用的关系运算符: 运算 ...

  9. LeetCode:17. Letter Combinations of a Phone Number(Medium)

    1. 原题链接 https://leetcode.com/problems/letter-combinations-of-a-phone-number/description/ 2. 题目要求 给定一 ...

  10. 6.JAVA知识点归纳整理

    一.jdk初识与HelloWord: 二.java基础: 2.1 标识符_关键字_数据类型 2.2 数据类型转换 2.3 程序编写格式 2.4 运算符 2.5 分支与for循环 2.6 while_b ...