Python图像全屏显示
需要在嵌入式设备上全屏显示图像,使用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图像全屏显示的更多相关文章
- python Tkinter 全屏显示
#! /usr/bin/env python # -*- coding: utf-8 -*- import Tkinter as tk class FullScreenApp(object): def ...
- PyQt5图像全屏显示
Windows装这个:https://pypi.python.org/pypi/PyQt5Ubuntu输入这个:sudo apt-get install python3-pyqt5 或者直接输入:pi ...
- JavaScript:让浏览器全屏显示
并不是所有人都会按F11让浏览器全屏显示~~~ 一.直接上代码 <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xh ...
- 在VC++6.0开发中实现全屏显示
全屏显示是一些应用软件程序必不可少的功能.比如在用VC++编辑工程源文件或编辑对话框等资源时,选择菜单“View\Full Screen”,即可进入全屏显示状态,按“Esc”键后会退出全屏显示状态. ...
- Android 全屏显示的方法(不包含状态栏)
我们都知道在Android中某些功能的实现往往有两种方法:一种是在xml文件中设置相应属性,另一种是用代码实现.同样Android实现全屏显示也可以通过这两种方法实现: 1.在AndroidManif ...
- Android 全屏显示
Android全屏显示: @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInst ...
- QT5中全屏显示子窗口和取消全屏的方法
问题描述:用QT5做了个MDI多窗体应用程序,想把子窗体全屏显示,用网上的方法,但总是遇到问题. 网上的解决方法原文在这:http://www.cnblogs.com/Rick-w/archive/2 ...
- 启动app时全屏显示Default.png
一直很喜欢MJ的讲课视频,今天看了他的博客学到了些东西顺便记录下来. 在默认情况下,app显示Default.png时并非真正的"全屏显示",因为顶部的状态栏并没有被隐藏,比如下面 ...
- 【温故而知新-Javascript】窗口效果 (全屏显示窗口、定时关闭窗口)
1.全屏显示窗口 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://ww ...
随机推荐
- ssd的BUG
苦恼了我一周,当然最近我有事老请假,也有原因.就是查不到我训练的SSD模型问题出在哪里,loss也在下降,但是跳动比较大.测试时,有些类效果还可以,但是有些类压根检测不出来.而根据我的经验,那些类大概 ...
- o'Reill的SVG精髓(第二版)学习笔记——第七章
第七章:路径 所有描述轮廓的数据都放在<path>元素的d属性中(d是data的缩写).路径数据包括单个字符的命令,比如M表示moveto,L表示lineto.接着是该命令的坐标信息. 7 ...
- 金s办公软件web前端笔试题
1. var arr = []; arr['a'] = 1; console.log(arr.length); // A arr['4'] = 2; console.log(arr.length); ...
- Unity 游戏框架搭建 (十二) 简易AssetBundle打包工具(二)
上篇文章中实现了基本的打包功能,在这篇我们来解决不同平台打AB包的问题. 本篇文章的核心api还是: BuildPipeline.BuildAssetBundles (outPath, 0, Edit ...
- 分组函数group by和Oracle中分析函数partition by的用法以及区别
1.分组函数group by和Oracle中分析函数partition by的用法以及区别 2.开窗函数.
- 【PTA 天梯赛训练】六度空间(广搜)
“六度空间”理论又称作“六度分隔(Six Degrees of Separation)”理论.这个理论可以通俗地阐述为:“你和任何一个陌生人之间所间隔的人不会超过六个,也就是说,最多通过五个人你就能够 ...
- A^B Mod C (51Nod - 1046 )(快速幂)
给出3个正整数A B C,求A^B Mod C. 例如,3 5 8,3^5 Mod 8 = 3. Input 3个正整数A B C,中间用空格分隔.(1 <= A,B,C <= 10^ ...
- ABAP术语-ALE
ALE 原文:http://www.cnblogs.com/qiangsheng/archive/2007/12/13/993351.html Application Link Enabling (A ...
- WordPress博客插件程序:搜索下拉框openSug
百度搜索框下拉提示Wordpress组插件. 下载地址:https://www.opensug.org/faq/wp-content/uploads/2018/12/opensug.wordpress ...
- 百度app红包? 百度全家桶?果断卸载
听说今年的春晚红包与百度合作.这不 刚又下载了一个百度app,之前下载过,太卡了,用户体验极.本身对百度也没啥好感,再加上这周看了:百度已死的文章,搜索全百家号.具体啥情况,你们百度搜一搜吧