前言:
日常中,我们经常将文档等一些不久就要用到的文件放在桌面上,久而久之,文件越来越多,桌面杂乱无章,最重要的是难找难看!这时候,这款高效桌面壁纸或许可以拯救你!
上图
井然有序,有条有理!
用Python实现
这里用到的库:
1 2 | from PIL import Image,ImageDraw,ImageFont from win32api import GetSystemMetrics |
流程:
- 利用
Image.new 根据桌面分辨率生成一张底图 - 再根据需要划分的工作区来生成方格图
- 最后让方格图贴到生成的底图上
代码
参数:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | #获取屏幕分辨率 建议1920,1080 back_width_height=(GetSystemMetrics(0),GetSystemMetrics(1)) #划分个数 x,y=2,2 #划分方格的长宽 target_width_height=(back_width_height[0]//x,back_width_height[1]//y) #每个方格的颜色 颜色库https://www.sioe.cn/yingyong/yanse-rgb-16/ target_color=[(255,105,180),(0,191,255),(0,250,154),(255,215,0)] #字体的位置 右下角放置字体target_width_height[0]-160,target_width_height[1]-80 font_position=(10,10) #工作区的标题 text=['开发','应用','未做','正在做'] #中文字体(路径,大小) fontSetting=('C:\\Windows\\Fonts\\simhei.ttf',80) |
若想要右下角放置字体,可以用target_width_height减去字体长度高度(一个字默认80)
获取所有方格坐标
1 2 3 4 5 6 | def areaPoint(x,y): lists=[] for i in range(0,back_width_height[0],back_width_height[0]//x): for j in range(0,back_width_height[1],back_width_height[1]//y): lists.append((i,j)) return lists |
生成:
1 2 3 4 5 6 7 8 9 10 11 | def createBackGround(back_width_height,target_width_height,target_color): backGround = Image.new('RGB', back_width_height,(255,255,255)) xy=areaPoint(x,y)#定义每个方格所贴的位置 for i in range(x*y): newimage=Image.new('RGB',target_width_height,target_color[i]) draw = ImageDraw.Draw(newimage) ft = ImageFont.truetype(fontSetting[0], fontSetting[1]) draw.text(font_position,text[i], fill=(255,255,255),font=ft) backGround.paste(newimage,xy[i]) backGround.save('./out.jpg', quality=100) print("生成成功!") |
代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | from PIL import Image,ImageDraw,ImageFont from win32api import GetSystemMetrics def createBackGround(back_width_height,target_width_height,target_color): backGround = Image.new('RGB', back_width_height,(255,255,255)) xy=areaPoint(x,y)#定义每个方格所贴的位置 for i in range(x*y): newimage=Image.new('RGB',target_width_height,target_color[i]) draw = ImageDraw.Draw(newimage) ft = ImageFont.truetype(fontSetting[0], fontSetting[1]) draw.text(font_position,text[i], fill=(255,255,255),font=ft) backGround.paste(newimage,xy[i]) backGround.save('./out23.jpg', quality=100) def areaPoint(x,y): lists=[]#生成每个方格的座标 for i in range(0,back_width_height[0],back_width_height[0]//x): for j in range(0,back_width_height[1],back_width_height[1]//y): lists.append((i,j)) return lists if __name__ == "__main__": #获取屏幕分辨率 建议1920,1080 back_width_height=(GetSystemMetrics(0),GetSystemMetrics(1)) #划分个数 x,y=2,2 #划分方格的长宽 target_width_height=(back_width_height[0]//x,back_width_height[1]//y) #每个方格的颜色 target_color=[(255,105,180),(0,191,255),(0,250,154),(255,215,0)] #字体的位置 右下角放置字体target_width_height[0]-160,target_width_height[1]-80 font_position=(10,10) #font_point=(20,20) #工作区的标题 text=['开发','应用','未做','正在做'] #中文字体(路径,大小) fontSetting=('C:\\Windows\\Fonts\\simhei.ttf',80) createBackGround(back_width_height,target_width_height,target_color) |
运行后即可在当前文件夹下找到
当然,你也可以随心所欲的布局
x,y=3,1:
其他:
DIY
调整字体的大小,颜色,样式,位置
调整方格的大小,位置,颜色
随机粘贴方格位置
但是要注意target_color与text与x*y数量始终保持一致
世界上只有两种物质:高效率和低效率;世界上只有两种人:高效率的人和低效率的人。
相信可以找出一个适合自己的效率桌面
希望这个桌面壁纸让你可以提升更多效率来完成更多task
加油