想法起点

最近本人在B站上边学习JAVA,但苦于JAVA有上百多P的选集
每次看完课关掉浏览器都必须将当前页面添加到收藏夹,然后再删掉之前保存的链接
在密密麻麻的小框框里一个一个点是真的不舒服,还容易点错别的地方,有点搞心态T_T;

如图所示:

**
(上百P的视频)**

(复杂的点选有点搞心态)

————————————————————————

于是我想到可以通过一个程序,将所学习的进度输入,并打印到桌面上即可实现提醒自己学习进度,输入地址即可关联直接进入,修改最后的P的部分即可继续学习

如图:

地址栏直接输入关键字即可出现相关链接

可以看到,直接修改最后的P=127即可继续,修改完成直接回车即可继续学习。

————————————————————————

先上效果图

1、打开程序

2、输入给定的学习P数:

输入后回车即可

3、回车后将自动关闭窗口,将在壁纸的右上角打印上P数

程序思路

1、首先是学习结束后进行输入集数(P),通过键盘输入;
2、程序得到集数P后,通过指定的图像坐标将P进行打印到桌面壁纸上;
3、打印完成后,直接输出图像到根目录,并通过程序设定其为壁纸;

程序代码

**程序模块使用:

import cv2
from PIL import ImageFont, ImageDraw, Image
import numpy as np
import win32api
import win32con
import win32gui**

————————

1、首先是输入当前学习P数,并通过OpenCV模块读取原壁纸图像

print("今天又是学习的一天!请输入学习进度吧:") # 提示输入当前学习计划点
StudyPiont = int (input())  # 输入
bk_img = cv2.imread("1.jpg") # 读取1.jpg

2、通过PIL模块来对字体进行调整(字号、字体、大小等)

#设置需要显示的字体
fontpath = "font/simsun.ttc" # 设置字体
font = ImageFont.truetype(fontpath, 90) # 字体大小,当前90
img_pil = Image.fromarray(bk_img) #PiL模块
draw = ImageDraw.Draw(img_pil)

3、然后是对图像的确定点进行字符串的打印,绘制文字信息非常重要,请注意看!
此处感谢@Caidaji大佬的建议

此处非常重要!请注意看!

#绘制文字信息,这个地方一定要注意了,这个是字显示的坐标!
#我本人用的坐标是draw.text((4000, 100),大家可以根据自己的需要进行坐标的更改!
draw.text((2000, 100),  "当前JAVA学习计划:P"+str(StudyPiont), font = font, fill = (255, 255, 255))
bk_img = np.array(img_pil)

4、通过OpenCV模块实现图像的输出

#cv2.imshow("add_text",bk_img) #展示图像
cv2.waitKey()
cv2.imwrite("add_text.jpg",bk_img)  # OpenCV输出图像

// 当然,这里可以选择展示图像,我将其注释掉了,因为后期直接输入完就没了,没必要看效果。

5、通过系统模块设定壁纸(此处描述不是很清楚勿喷)

#设置壁纸模块
def setWallpaper(path):#打开注册表reg_key = win32api.RegOpenKeyEx(win32con.HKEY_CURRENT_USER,"Control Panel\\Desktop",0,win32con.KEY_SET_VALUE)#2:拉伸  0:居中  6:适应  10:填充win32api.RegSetValueEx(reg_key, "WallpaperStyle", 0, win32con.REG_SZ, "2") # 我们选择了拉伸#win32api.RegSetValueEx(reg_key,"Wallpaper") #SPIF_SENDWININICHANGE:立即生效win32gui.SystemParametersInfo(win32con.SPI_SETDESKWALLPAPER, path, win32con.SPIF_SENDWININICHANGE)

然后是最后直接调用这个def的函数即可:

setWallpaper(r"G:\工作\工程\python\在图像上写字\add_text.jpg")

这里我用了绝对地址,大家用的时候记得改,否则将会读取不到导致壁纸黑屏。

注意事项

1、程序在使用前,可以先提前设定好“add_text.jpg”为我们的壁纸,如果不这么设定,开机后壁纸将会还原;
2、我的程序里使用到了绝对地址,大家在使用过程中可以根据自己的情况进行修改;
3、可以将程序固定到Start窗口里,结束看课后方便打开;
4、文字坐标会根据图像的大小变化,因为用的字体定位是绝对定位,用的时候要多次修改调整好位置!

整体代码

import cv2
from PIL import ImageFont, ImageDraw, Image
import numpy as np
import win32api
import win32con
import win32guiprint("今天又是学习的一天!请输入学习进度吧:") # 提示输入当前学习计划点
StudyPiont = int (input())  # 输入
bk_img = cv2.imread("1.jpg") # 读取1.jpg#设置需要显示的字体
fontpath = "font/simsun.ttc" # 设置字体
font = ImageFont.truetype(fontpath, 90) # 字体大小,当前90
img_pil = Image.fromarray(bk_img) #PiL模块
draw = ImageDraw.Draw(img_pil)#绘制文字信息
draw.text((4000, 100),  "当前JAVA学习计划:P"+str(StudyPiont), font = font, fill = (255, 255, 255))
bk_img = np.array(img_pil)
#draw.text((4000, 200),  "当前JAVA学习计划:P"+str(StudyPiont), font = font, fill = (255, 255, 255))
#bk_img = np.array(img_pil)#cv2.imshow("add_text",bk_img) #展示图像
cv2.waitKey()
cv2.imwrite("add_text.jpg",bk_img)  # OpenCV输出图像#设置壁纸模块
def setWallpaper(path):#打开注册表reg_key = win32api.RegOpenKeyEx(win32con.HKEY_CURRENT_USER,"Control Panel\\Desktop",0,win32con.KEY_SET_VALUE)#2:拉伸  0:居中  6:适应  10:填充win32api.RegSetValueEx(reg_key, "WallpaperStyle", 0, win32con.REG_SZ, "2") # 选择了拉伸##win32api.RegSetValueEx(reg_key,"Wallpaper") #SPIF_SENDWININICHANGE:立即生效win32gui.SystemParametersInfo(win32con.SPI_SETDESKWALLPAPER, path, win32con.SPIF_SENDWININICHANGE)setWallpaper(r"G:\工作\工程\python\在图像上写字\add_text.jpg")

没有PIL模块和OpenCV模块的小伙伴也别担心,我给你们封装好了EXE,你们直接就能下载用:
CSDN下载地址(EXE封包+源码)

相关来源:

利用python PIL模块在图片上写文字
利用OpenCV python图像输入输出
用python设置windows系统桌面背景(壁纸)的代码

都看到这了,给点支持吧~点个赞也好呀!:)

基于Python打印文字到桌面壁纸上的提醒学习小程序相关推荐

  1. 计算机实战项目 含文档+PPT+源码等]精品基于Python实现的大学校园短视频社交软件系统-微信小程序

    django大学校园短视频社交软件系统>该项目采用技术Python的django框架.mysql数据库 ,项目含有源码.论文.PPT.配套开发软件.软件安装教程.项目发布教程.核心代码介绍视频等 ...

  2. 计算机毕业设计-含文档+PPT+源码等]精品基于Python实现的大学校园短视频社交软件系统-微信小程序

    django大学校园短视频社交软件系统>该项目采用技术Python的django框架.mysql数据库 ,项目含有源码.论文.PPT.配套开发软件.软件安装教程.项目发布教程.核心代码介绍视频等 ...

  3. 精品基于Python实现的大学校园短视频社交软件系统-微信小程序

    <django大学校园短视频社交软件系统>该项目采用技术Python的django框架.mysql数据库 ,项目含有源码.论文.PPT.配套开发软件.软件安装教程.项目发布教程.核心代码介 ...

  4. 基于Python实现的大学校园短视频社交软件系统-微信小程序

    django大学校园短视频社交软件系统>该项目采用技术Python的django框架.mysql数据库 ,项目含有源码.论文.PPT.配套开发软件.软件安装教程.项目发布教程.核心代码介绍视频等 ...

  5. PHP 根据文字内容添加图片上实现自动换行的小程序

    前进的动力来自很多东西,渴望也好,向往也好,压力也好. 总之是源于人对更好的事物的追求. 想要变成大牛,就永远不要失去这种渴望,这种追求. 最近这一周一直在鼓捣一个将用户输入的文字加载到图片上面的功能 ...

  6. 计算机Python项目(毕设课设)之含文档+PPT+源码等]精品基于Python实现的大学校园短视频社交软件系统-微信小程序

    管理员:首页.个人中心.用户管理.视频分类管理.短视频信息管理.交流论坛.系统管理等功能 小程序:首页.公告信息.交流论坛.我的等功能 系统功能完整,适合作为毕业设计.课程设计.数据库大作业. 下面是 ...

  7. python毕业设计题目推荐基于Python实现的大学校园短视频社交软件系统-微信小程序[包运行成功]计算机毕业设计

  8. Python运用urllib2和BeautifulSoup爬取网站ZOL桌面壁纸上的精美电脑壁纸

    Python运用urllib2和BeautifulSoup爬取网站ZOL桌面壁纸上的精美电脑壁纸 #!/usr/bin/env python # -*- coding: utf-8 -*- # @Ti ...

  9. 基于QT ffmpeg的动态桌面壁纸

    基于QT ffmpeg的动态桌面壁纸 目前制作了一个基于QT ffmpeg的动态桌面壁纸,源码程序在github上 下面为链接: 动态壁纸软件 项目名为 DesktopDynamicWallpaper ...

最新文章

  1. 服务器端物理实现(二)
  2. plotly基于dataframe数据绘制散点图(scatter plot)
  3. 安装exchange server 2003服务器
  4. preCornerDetect函数
  5. 3.4 参数展开-机器学习笔记-斯坦福吴恩达教授
  6. shell随机数及按行切割文件
  7. Qt Creator设置一个Autotools项目
  8. [BUUCTF-pwn]——[BJDCTF 2nd]ydsneedgirlfriend2
  9. JAVA牛客专项练习2020.12.31
  10. web.xml(8)_jsp-config
  11. [Node.js]Domain模块
  12. flex学习笔记 富文本编辑(一)-RichEditableText
  13. iphone7home键按压失灵_iPhone home键失灵怎么办 iPad home键失灵解决办法【详解】
  14. 增强 扫描王 源码_制作一个类“全能扫描王”的简易扫描软件(opencv)
  15. Mac 复制 粘贴问题
  16. sublime Boxy Theme安装方法
  17. 程序人生 - 国有划拨和国有出让的区别 国有划拨参照什么标准进行
  18. 橘子学ES12之DSL搜索
  19. 阿里云环境(CentOS7.6)部署Zabbix5.0 Agent2
  20. 短信平台专业版软件客户端功能详解源码搭建|移讯云短信系统

热门文章

  1. 了解数据的发展历程--大数据简史
  2. wifi一到晚上服务器无响应,wifi到晚上网速很慢(为啥一到晚上网速就慢)
  3. Linux查看DNS服务器及设置DNS服务器的方法
  4. 金钱找零问题,招行笔试题
  5. 【如何在知网下载学位论文PDF版本】
  6. PostgreSQL对汉字按拼音排序
  7. 学渣的刷题之旅 leetcode刷题 53.最大子序和(动态规划,贪心法)
  8. 学渣的刷题之旅 leetcode刷题 35.搜索插入位置(暴力法、二分查找)
  9. 冒泡排序保姆级心得分享
  10. node对文件的读取和修改