如何使用Win10开机以及Chrome插件Momentum的首页背景图作为桌面背景?

1,236 阅读2分钟

找到他们!

这些图片的位置在:C:\Users\YOUR_USER_NAME\AppData\Local\Packages\Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy\LocalState\Assets

2017-07-15 22:45:27 更新:支持Chrome插件Momentum的背景图。

让代码来解决问题!

代码中文档已经写好了如何使用~~~~

不过还是列个关键字!

  • Win10
  • Python2/3
  • pip install pillow

filterWinStartBg.py:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
__author__ = 'Danceiny'
__doc__ = """
本模块实现以下功能:
2017-07-15 22:45:27 更新:支持Chrome插件Momentum的背景图。
1. 将Win10开机时的背景图片(DIR)复制到指定目录(PIC_DIR),并根据文件类型重命名。
2. 删除指定目录下不适合作为桌面背景(不满足DEFAULT_RESOLUTION)的图片。
使用方法:
在以下代码中的【自定义背景】区自定义你的变量,然后直接运行本文件: python filterWinStartBg.py, 再到【Windows设置】-【个性化】-【背景】-【背景】选择【幻灯片放映】,【为幻灯片选择相册】设置为PIC_DIR.
!!!!即可将Win10开机时的好看的背景图设置为桌面幻灯片背景啦!!!!!!
!!!!适用环境!!!!
1. Win10
2. Python2/3
3. pip install pillow
Copyrights @ Danceiny 2017-07-09 Morning
Danceiny@GitHub && danceiny@gmail.com
还可参考:[python 设置windows桌面背景(从网络抓取)](http://www.cnblogs.com/qianlifeng/archive/2012/05/10/2494005.html)
"""
import os
import shutil  # for copy/move file
import imghdr  # determine img type
######################  自定义常量   ####################
USERNAME = 'huangzhen'
MOMENTUM_VER = '0.95.3_0'   # chrome 插件 momontum的版本号,可根据下面代码中的MOMENTUM_DIR进入文件管理器中查找
PIC_DIR = r''
DEFAULT_RESOLUTION = (1920,1080)
######################  自定义常量   ####################
DIR = r'C:/Users/{}/AppData/Local/Packages/Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy/LocalState/Assets'.format(USERNAME)
MOMENTUM_DIR = r'C:/Users\{USER}\AppData\Local\Google\Chrome\User Data\Default\Extensions\laookkfknpbbblfpciffpaejjkokdgca\{VERSION}\backgrounds'.format(USER=USERNAME,VERSION=MOMENTUM_VER)
PIC_DIR = r'C:/Users/{}/Documents/Beautiful/Background'.format(USERNAME) if PIC_DIR == '' else PIC_DIR
DIR = DIR.replace('/','\\')
PIC_DIR = PIC_DIR.replace('/','\\')
def rename(path):
    for filename in os.listdir(path):
        all_filename = os.path.join(path,filename)
        if os.path.isfile(all_filename):
            if filename.find('.') < 0:
                img_type = imghdr.what(all_filename)
                suffix = 'jpg'
                if img_type == 'png':
                    suffix = 'png'
                elif img_type == 'gif':
                    suffix = 'gif'
                elif img_type == None:
                    os.remove(all_filename)
                    continue
                newname = '.'.join((all_filename,suffix))
                os.rename(all_filename,newname)
def copyfiles(oldpath, newpath):
    if not os.path.exists(newpath):
        print('你指定的目录不存在,我要创建它^_^')
        os.makedirs(newpath)
    for filename in os.listdir(oldpath):
        all_old = os.path.join(oldpath, filename)
        if os.path.isfile(all_old):
            is_exist_flag = False
            for newfilename in os.listdir(newpath):
                if newfilename.split('.')[0] == filename:
                    is_exist_flag = True
                    print(' '.join(('目标目录已经存在该文件',filename,'我不会复制它的。')))
                    break
            if is_exist_flag == False:
                shutil.copyfile(all_old, os.path.join(newpath, filename))
from PIL import Image
def get_img_resolution(filename):
    # img = Image.open(filename)
    # imgSize = img.size #图片的长和宽
    # maxSize = max(imgSize) #图片的长边
    # minSize = min(imgSize) #图片的短边
    # return imgSize
    return Image.open(filename).size
def del_unfit_imgs(path,mode='strict'):
    #'strict'模式下删除该路径下所有尺寸不是DEFAULT_RESOLUTION的图片,非stric模式下删除长宽均小于默认尺寸的图片(momentum有很多不满足我原来设想的标准尺寸要求的美图啊~~~)
    for filename in os.listdir(path):
        all_filename = os.path.join(path,filename)
        if os.path.isfile(all_filename):
            if imghdr.what(all_filename) == None:
                os.remove(all_filename)
                continue
            imgSize = get_img_resolution(all_filename)
            if mode == 'strict':
                if max(imgSize) != max(DEFAULT_RESOLUTION) and min(imgSize) != min(DEFAULT_RESOLUTION):
                    os.remove(all_filename)
            else:
                if max(imgSize) < max(DEFAULT_RESOLUTION) and min(imgSize) < min(DEFAULT_RESOLUTION):
                    os.remove(all_filename)
if __name__ == '__main__':
    copyfiles(DIR, PIC_DIR)
    copyfiles(MOMENTUM_DIR,PIC_DIR)
    rename(PIC_DIR)
    del_unfit_imgs(PIC_DIR,mode='non_strict')

给Gist来个Star吧

Danceiny wechat 欢迎您扫一扫上面的微信公众号,订阅我的博客! 坚持原创技术分享,您的支持将鼓励我继续创作! 赏 Danceiny WeChat Pay

微信打赏

Danceiny Alipay

支付宝打赏