大家好,我是6C
一个爱折腾的营销人
这次的这个折腾呢,是我在用Notion记日记的过程中,希望有几月几日星期几的icon。然而,我自己也没有画ICON的能力。
直到有一天偶然发现Mac电脑的DOCK栏有显示日期(当然后面发现launchpad页面更好),那是不是每天截一个固定比例的图存下来就可以了。
说干就干!
step1 将屏幕窗口定位到固定页面
- Launch Pad 页面上的图标特别适合用来截取
- 位置固定不变
- 图标比较大
- 通过pykeyboard包实现
- 设置lanuch pad快捷键盘 command + L
- 通过pykeyboard包按下键盘定位到页面
- key_press()方法
def pressKey(): k = mac.PyKeyboard() k.press_key("command") k.press_key("l") k.release_key("l") k.release_key("command")
- key_press()方法
step 2 获取当前屏幕截图并裁剪
- pyscreenshot包抓起图片
- grab()方法
- 完成图片旋转
- rotate()方法,角度是逆时针
- 裁剪固定图标的位置
- 计算到图片对于到像素位置
- 用image.crop()方法来裁切,四个数字到顺序分别为,左,上,右,下
def capture(filename):
img = pyscreenshot.grab().rotate(350)
img2 = img.crop(box=(1950,155,2160,390))
img2.save('/Users/louis/PycharmProjects/pachong/02project_calendar_icon/' + filename + ".png")
step 3 去底色
- 找了特别久,综合下来还是removebg的API比较好用
def remove(filename):
response = requests.post(
'<https://api.remove.bg/v1.0/removebg>',
files={'image_file': open('/Users/louis/PycharmProjects/pachong/02project_calendar_icon/' + filename + ".png", 'rb')},
data={'size': 'auto'},
headers={'X-Api-Key': 'THIS IS YOUR API KEY'},
)
if response.status_code == requests.codes.ok:
with open('/Users/louis/Documents/04编程/' + filename + '.png', 'wb') as out:
out.write(response.content)
else:
print("Error:", response.status_code, response.text)
- 然后偶然的发现,快捷指令可以很方便的使用API,后续有更多可能
step5 固定时间每天自动运行
- schedule包实现
- 先定义一个job
def job_icon(filename): # filename = str('%02d' % time.localtime().tm_mon) + str('%02d' % time.localtime().tm_mday) Icon.capture(filename) Icon.remove(filename)
- 设定自动运行的时间
filename = str('%02d' % time.localtime().tm_mon) + str('%02d' % time.localtime().tm_mday) schedule.every().day.at("00:02").do(job_icon, filename=filename)
- 循环运行
while True: schedule.run_pending() time.sleep(10000)
- 同步了解了一下,怎么调用另外一个python文件,从文件夹开始调用