摄像头画面作为电脑桌面背景

1. 创建文件main.pyw,文件内容

import base64
import io
import os
import threading
import tkinter as tkimport cv2
import pystray
import win32api
import win32con
import win32gui
from PIL import Image, ImageTk
from pystray import MenuItem, Menuclass Window:def __init__(self):self.window = tk.Tk()self.window.geometry("320x200")self.canvas = tk.Canvas(self.window, width=320, height=180)self.canvas.place(x=0, y=0)self.label_str = tk.StringVar()label = tk.Label(self.window, textvariable=self.label_str)label.place(x=0, y=180)self.top_label_str = tk.StringVar()top_label = tk.Label(self.window, textvariable=self.top_label_str)top_label.place(x=100, y=180)self.capture = Noneself.delay = 15self.show = True# 修改壁纸样式reg_key = win32api.RegOpenKeyEx(win32con.HKEY_CURRENT_USER, "Control Panel\\Desktop", 0, win32con.KEY_SET_VALUE)win32api.RegSetValueEx(reg_key, "WallpaperStyle", 0, win32con.REG_SZ, "2")win32api.RegSetValueEx(reg_key, "TileWallpaper", 0, win32con.REG_SZ, "0")def quit_window(self, icon: pystray.Icon):icon.stop()self.window.destroy()self.show = Falsedef show_window(self):self.window.deiconify()self.show = Truedef on_exit(self):self.window.withdraw()def set_topmost(self):topmost = self.window.attributes("-topmost")if topmost:self.window.attributes("-topmost", False)self.top_label_str.set("")else:self.show_window()self.window.attributes("-topmost", True)self.top_label_str.set("已置顶")def init_capture(self):try:self.label_str.set("摄像头加载中")self.capture = cv2.VideoCapture(0)self.capture.set(3, 1920)self.capture.set(4, 1080)self.update_canvas()self.label_str.set("摄像头加载完成")except:self.label_str.set("摄像头加载失败")def update_canvas(self):ret, frame = self.capture.read()if ret:file_path = os.getcwd() + "/1.png"cv2.imwrite(file_path, frame)# 设置壁纸win32gui.SystemParametersInfo(win32con.SPI_SETDESKWALLPAPER, file_path, win32con.SPIF_SENDWININICHANGE)if self.show:img = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)img = Image.fromarray(img)img = ImageTk.PhotoImage(img.resize((320, 180)))self.canvas.imgtk = imgself.canvas.create_image(0, 0, anchor=tk.NW, image=img)# 重复更新画布self.window.after(self.delay, self.update_canvas)def start(self):# 菜单menu = (MenuItem('显示', self.show_window, default=True),Menu.SEPARATOR,MenuItem('置顶', self.set_topmost),Menu.SEPARATOR,MenuItem('退出', self.quit_window))image_bytes = base64.b64decode("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")image_data = io.BytesIO(image_bytes)image = Image.open(image_data)icon = pystray.Icon("icon", image, "图标名称", menu)threading.Thread(target=icon.run, daemon=True).start()threading.Thread(target=self.init_capture, daemon=True).start()# 重新定义点击关闭按钮的处理self.window.protocol('WM_DELETE_WINDOW', self.on_exit)self.window.title('摄像壁纸')self.window.mainloop()if __name__ == '__main__':window = Window()window.start()

2. 创建文件requirements.txt,文件内容

numpy==1.26.2
opencv-python==4.8.1.78
Pillow==10.1.0
pystray==0.19.5
pywin32==306
six==1.16.0

3. 安装依赖

pip install -r requirements.txt

4. 运行

双击main.pyw

在这里插入图片描述
防火布

github下载代码

git clone https://github.com/weiangongsi/wallpaper-camera.git

从上面第3步开始执行

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/235529.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux之yum管理器

目录 yum管理器 yum相关指令 yum list yum list | grep yum install yum remove 拓展 1.yum install -y man-pages 2.切换yum源 3.yum install -y epel-release 4. yum install -y lrzsz rz指令 sz指令 在window系统上,我们会在电脑自带的应用商…

分布式编译distcc

工程代码编译速度太慢,决定采用分布式编译来提高编译速度. distcc ,请参考https://www.distcc.org/ 安装 我用的distcc的版本是distcc-3.2rc1, 下载源码,安装步骤如下: ./autogen.sh ./configure --disable-Werror --prefix/…

<软考高项备考>《论文专题 - 20 资源管理(六) 》

8 过程6-控制资源 8.1 提出问题 问题过程2-活动资源估算做什么确保按计划为项目分配实物资源,以及根据资源使用计划监督资源实际使用情况,并采取必要纠正措施的过程;作用:①确保所分配的资源适时、适地可用于项目;②资源在不再需要时被释放…

mac电脑安装虚拟机教程

1、准备一台虚拟机,安装CentOS7 常用的虚拟化软件有两种: VirtualBoxVMware 这里我们使用VirtualBox来安装虚拟机,下载地址:Downloads – Oracle VM VirtualBox 001 点击安装 002 报错:he installer has detected an…

Java和Python中的目标堆栈规划实现

目标堆栈规划是一种简单高效的人工智能规划算法,用于解决复合目标问题。它的工作原理是**将总体目标分解为更小的子目标,然后以向后的顺序逐一解决它们。 让我们考虑一个简单的例子来说明目标堆栈规划。想象一下你想要烤一个蛋糕,目标是准备…

Windows11编译VTM源码生成Visual Studio 工程

VTM介绍 VTM作为H266/VVC标准的官方参考软件,一直用作H266/VVC标准的研究和迭代。关于H2666/VVC标准的介绍、代码、提案、文档等,可以参考H266/VVC编码标准介绍。 官方代码地址: https://vcgit.hhi.fraunhofer.de/jvet/VVCSoftware_VTM&…

Flink系列之:JDBC SQL 连接器

Flink系列之:JDBC SQL 连接器 一、JDBC SQL 连接器二、依赖三、创建 JDBC 表四、连接器参数五、键处理六、分区扫描七、Lookup Cache八、幂等写入九、JDBC Catalog十、JDBC Catalog 的使用十一、JDBC Catalog for PostgreSQL十二、JDBC Catalog for MySQL十三、数据…

【GoLang】哪些大公司正在使用Go语言

你见过哪些令你膛目结舌的代码技巧? 文章目录 你见过哪些令你膛目结舌的代码技巧?前言:哪些大公司正在使用Go语言谷歌(Google):脸书(Facebook):亚马逊(Amazon…

字符串函数内存函数(从零到一)【C语言】

长度不受限制的字符串函数:strcpy,strcat,strcmp 长度受限制的字符串函数:strncpy,strncat,strncmp strlen strlen函数是库函数中我们最常使用的函数,它可以求出字符串的长度(不包含‘\0’) 使用方法 通过前面对strlen函数的模拟实现我们知…

2019QWB growpjs

第一次知道原来各种map也是申请的一段连续的内存空间来存储,所以必要的时候可以通过固定偏移来从一种map获取到另一种map。但是要注意这里的获取的时候要保证对象不被释放。 这也是做的第一道涉及优化器的题目,收货很多 class Memory{constructor(){th…

服务器直接配置免密登录

要实现CentOS 7.6上的Docker容器中的Jenkins免密登录到CentOS 6.5服务器(前提是ssh版本都要7以上),你需要在Jenkins容器内生成SSH密钥,并将公钥添加到CentOS 6.5服务器上。以下是详细步骤: 1. 在Jenkins容器中生成SSH…

npm run build Last few GCs

npm run build Last few GCs 这是由于webpack执行时造成的内存溢出。 <--- Last few GCs --->[3906:0x3ce6a70] 165833 ms: Mark-sweep 1374.0 (1425.0) -> 1373.7 (1425.5) MB, 789.1 / 0.0 ms (average mu 0.108, current mu 0.007) allocation failure scaven…

深度学习模型压缩方法:剪枝方法分类介绍

本文将介绍深度学习模型压缩方法中的剪枝,内容从剪枝简介、剪枝步骤、结构化剪枝与非结构化剪枝、静态剪枝与动态剪枝、硬剪枝与软剪枝等五个部分展开。 一、剪枝简介 在介绍剪枝之前,首先介绍过参数化这个概念,过参数化主要是指在训练阶段,在数学上需要进行大量的微分求解…

二维码智慧门牌管理系统:实现数据通信安全

文章目录 前言一、传输隧道加密技术二、传输数据加密技术三、数据接入鉴权技术 前言 随着信息技术的蓬勃发展&#xff0c;智慧门牌管理系统已成为现代商业和家庭重要的一部分。然而&#xff0c;系统普及的同时也带来了数据通信安全的突出问题。为了解决这一挑战&#xff0c;二…

Netty Review - StringEncoder字符串编码器和StringDecoder 解码器的使用与源码解读

文章目录 概念概述StringEncoderStringDecoder Code源码分析StringEncoderStringDecoder 小结 概念 概述 Netty是一个高性能的网络应用程序框架&#xff0c;它提供了丰富的功能&#xff0c;包括编解码器&#xff0c;这些编解码器用于在网络中发送和接收数据时进行数据的编码和…

SOME/IP SubscriberEventGroup

1 SOME/IP SubscriberEventGroup SubscriberEventGroup是SOME/IP中的一种服务发现和注册的消息类型,它用于让服务使用者订阅服务提供者的事件组。 事件组是一种将服务的方法和字段分组的方式,它可以让服务使用者只接收感兴趣的数据,而不是所有的数据。 SubscriberEventGrou…

nodejs+vue+微信小程序+python+PHP柚子校园影院系统-计算机毕业设计推荐

柚子校园影院综合网络空间开发设计要求。目的是将系统传统管理方式转换为在网上管理&#xff0c;完成信息管理的方便快捷、安全性高、交易规范做了保障&#xff0c;目标明确。柚子校园影院可以将功能划分为管理员功能和用户功能。  而开发本系统&#xff0c;又能够提高系统整体…

在 Windows 搭建 SVN 服务

近公司给配了台新电脑&#xff0c;配置挺主流的&#xff0c;但是不舍得抛弃自己的旧电脑&#xff08;原配嘛&#xff0c;这叫贪新不舍旧&#xff09;&#xff0c;于是打算在新电脑上只作开发环境&#xff0c;然后旧电脑作为版本库&#xff0c;这样保存版本的时候可以直接上传到…

es、MySQL 深度分页问题

文章目录 es 深度分页MySQL 深度分页 es 深度分页 es 深度分页问题&#xff0c;有点忘记了&#xff0c;这里记录一下 当索引库中有10w条数据&#xff0c;比如是商品数据&#xff1b;用户就是要查在1w到后10条数据&#xff0c;怎么查询。 es查询是从各个分片中取出前1w到后10条数…

【Mysql basic commands/query: how to update the message/record data of each row】

mysql common commands I) desc, insert and update I) desc, insert and update desc describe, insert into subject values(null,“Geometry Politics”, 99); mysql> select * from subject; ------------------------------------------------- | subject_id | subj…