
【Ubuntu】自动更换添加倒计时的壁纸
发布日期:2021-05-07 13:15:09
浏览次数:24
分类:原创文章
本文共 2903 字,大约阅读时间需要 9 分钟。
【Ubuntu】自动更换添加倒计时的壁纸
目录
环境
Ubuntu20.04.2 LTS
python3
主要功能介绍
取一张/多张基础图片,每天抽取一句诗词添加到图片的左下角,并在屏幕中间添加某天的倒计时。
说明
图片和字体文件本文不提供。后附效果图。
代码实现
#!/usr/bin/env python# -*- coding:utf-8 -*-# @Time : 2021/5/5 下午9:10# @Author: kwzc4# @File : 动态壁纸.py'''1.读文字2.读图片并合成3.合成4.保存设置注:文字,位置,颜色根据个人喜好自行修改'''import cv2from PIL import ImageFont, ImageDraw, Imageimport numpy as npimport linecacheimport datetimeimport osimg_path = "*.jpg你的基础背景文件"img = Image.open(img_path)this_path = "****你的文件保存地址"word_path = "txt文件,我的是毛主席诗词"font_path = "*.ttf你喜欢的字体文件地址"font_size = 60font_color= [255,255,255]word_arr=[]loc=[120,250]#倒计时flag_data = datetime.datetime.strptime('2022-4-15', '%Y-%m-%d')today=datetime.datetime.today()time_Countdown = (flag_data - today).days#更改诗句格式def get_word(word_path,num): lines_len = len(open(word_path,'r').readlines()) line_word = linecache.getline(word_path, num%lines_len+1).strip() word_arr=[[]] i=0 max_len = 0 for voca in line_word : if voca=="—" : break if voca in[",","。",":","!",";"]: if max_len<len(word_arr[i]): max_len = len(word_arr[i]) word_arr.append([]) i+=1 continue word_arr[i].append(voca) del word_arr[-1] #补全 for i in word_arr: if len(i)!=max_len: i+=[' ']*(max_len-len(i)) word_arr = np.array(word_arr) new_word_arr = np.array(word_arr) hang = word_arr.shape[0] lie = word_arr.shape[1] for i in range(hang): new_word_arr[i] = word_arr[hang-i-1] new_word_arr = new_word_arr.T word_arr =[] for i in range(lie): temp="" for word in new_word_arr[i]: temp += word word_arr.append(temp) return word_arr#读图片并合成def load_image(img_path,word_arr,loc,font_path,font_size,font_color): #img img = cv2.imread(img_path) #font 相关设置 fontpath = font_path font = ImageFont.truetype(fontpath, font_size) img_pil = Image.fromarray(img) draw = ImageDraw.Draw(img_pil) #添加文字 for i in range(len(word_arr)): draw.text((loc[0], loc[1]+int(font_size*i*1.25)), word_arr[i] , font = font, fill = (font_color[0],font_color[1], font_color[2])) return np.array(img_pil)#加诗句word_arr = get_word(word_path,time_Countdown)loc=[60,img.size[1]-int(len(word_arr)*1.3*font_size+20)]bk_img = load_image(img_path,word_arr,loc,font_path,font_size,font_color)cv2.imwrite("temp.jpg",bk_img)#保存图片#加倒计时img_path = "temp.jpg"loc=[int(img.size[0]/2),int(img.size[1]/2-4*font_size)] word_arr=["倒计时"+str(time_Countdown)+"天","列计划表!","今天的小目标是什么?","效率远比时长重要!"]#随便写了几句话,自行修改bk_img = load_image(img_path,word_arr,loc,font_path,font_size,font_color)#保存,设置背景#cv2.imshow("add_text",bk_img)#cv2.waitKey()os.system("rm temp.jpg")file_name = this_path+str(today.strftime('%Y_%m_%d'))+".jpg"cv2.imwrite(file_name,bk_img)#保存图片os.system("gsettings set org.gnome.desktop.background picture-uri "+file_name)
自动启动
cd /etc/init.dsudo vim /etc/init.d/mystart.sh#在文件末尾添加命令nohup python3 -u /home/你的地址/动态壁纸.py#保存退出sudo chmod 777 /etc/init.d/mystart.shsudo update-rc.d mystart.sh defaults 90#至此结束
附图
(颜值即正义,配色和位置后期再进行调整)
参考
发表评论
最新留言
初次前来,多多关照!
[***.217.46.12]2025年03月15日 17时46分42秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
(20200328已解决)从docker容器内复制文件到宿主机
2019-03-04
理解Docker ulimit参数
2019-03-04
Factor Exposure因子暴露
2019-03-04
理解Python系统下的时间格式
2019-03-04
《经济机器是怎样运行的》笔记(三)
2019-03-04
Python语言'类'概念再理解
2019-03-04
(2019.6.27)Anaconda清华镜像已恢复使用
2019-03-04
Robomongo使用教程:踩着前辈的路
2019-03-04
Python中Class类与def函数的区别
2019-03-04
OpenAI Gym简介及初级实例
2019-03-04
用Matplotlib和Gym优雅地呈现股票交易智体
2019-03-04
Github上量化交易相关项目汇总
2019-03-04
JS取出两个数组中的不同或相同元素
2019-03-04
Ubuntu 18.04 zip压缩文件及其文件 夹中的所以 内容
2019-03-04
int 转 CString
2019-03-04
Edit编辑框自动换行与长度
2019-03-04
英语02_单词词性
2019-03-04