【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#至此结束

附图

(颜值即正义,配色和位置后期再进行调整)

 

参考

 

上一篇:实现基于scrapy框架的天气预报爬虫hengYangSpaider @572311文
下一篇:【C51】修报废台灯来蹦迪,做定时台灯当闹钟

发表评论

最新留言

初次前来,多多关照!
[***.217.46.12]2025年03月15日 17时46分42秒