Python生成效率桌面壁纸,你真的需要一张!

前言:

日常中,我们经常将文档等一些不久就要用到的文件放在桌面上,久而久之,文件越来越多,桌面杂乱无章,最重要的是难找难看!这时候,这款高效桌面壁纸或许可以拯救你!

上图

在这里插入图片描述
在这里插入图片描述
井然有序,有条有理!

用Python实现

这里用到的库:

1
2
from PIL import Image,ImageDraw,ImageFont
from win32api import GetSystemMetrics

流程:

  1. 利用Image.new根据桌面分辨率生成一张底图
  2. 再根据需要划分的工作区来生成方格图
  3. 最后让方格图贴到生成的底图上

代码

参数:

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
加油