如何制作每日日历图标

大家好,我是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")
        

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(
        '',
        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文件,从文件夹开始调用

你可能感兴趣的:(如何制作每日日历图标)