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

   日期:2020-08-08     浏览:128    评论:0    
核心提示:想法起点最近本人在B站上边学习JAVA,但苦于JAVA有上百多P的选集每次看完课关掉浏览器都必须将当前页面添加到收藏夹,然后再删掉之前保存的链接在密密麻麻的小框框里一个一个点是真的不舒服,还容易点错别的地方,有点搞心态T_T;如图所示:**(上百P的视频)**(复杂的点选有点搞心态)————————————————————————于是我想到可以通过一个程序,将所学习的进度输入,并打印到桌面上即可实现提醒自己学习进度,输入地址即可关联直接进入,修改最后的P的部分即可继续学习如图:地址

想法起点

最近本人在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、然后是对图像的确定点进行字符串的打印,绘制文字信息

#绘制文字信息
draw.text((4000, 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 win32gui

print("今天又是学习的一天!请输入学习进度吧:") # 提示输入当前学习计划点
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系统桌面背景(壁纸)的代码

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

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服