首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Win10聚焦壁纸自动保存

太长不看:直奔文章最后下载。

如果你的系统是Win10的话,你应该能注意到,每次登录的时候壁纸都会变化,这就是Windows聚焦壁纸。Windows每隔一段时间(大概一两天)就更新一次。有时候遇到喜欢的壁纸就特别想保存下来,那么该怎么办呢?

其实这些图片就存在于电脑上的某个文件夹里,找到它复制出来就可以了(C:\Users\%username%\AppData\Local\Packages\Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy\LocalState\Assets\)。

找到后你会发现它大概是这个样子,文件都去掉了扩展名,无法显示缩略图。随便复制一个(文件稍微大点的,比如500KB以上的)到桌面,重命名文件加上".jpg"后缀就显示出来了。

但是一个个复制太麻烦,而且这个文件夹还会自动更新。这种机械性的重复操作最好的做法当然是交给程序实现了。

Talk is cheap. Show me the code!

本文就以Python为例,代码如下:

import os,shutil,cv2

focusDir="\\".join(os.getenv('APPDATA').split('\\')[:-1]) + "\\Local\\Packages\\Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy\\LocalState\\Assets\\"

focusList=os.listdir(focusDir)

if not os.path.isdir(r'WindowsFocusWallpapersH'):

os.mkdir(r'WindowsFocusWallpapersH')

if not os.path.isdir(r'WindowsFocusWallpapersV'):

os.mkdir(r'WindowsFocusWallpapersV')

saveDirH=os.getcwd()+'\\WindowsFocusWallpapersH\\'

exitListH=os.listdir(saveDirH)

saveDirV=os.getcwd()+'\\WindowsFocusWallpapersV\\'

exitListV=os.listdir(saveDirV)

for f in focusList:

focusPic=focusDir+f

img=cv2.imread(focusPic)

if img.shape[0] < img.shape[1] and not (f+'.jpg') in exitListH:

shutil.copyfile(focusPic,saveDirH+f+'.jpg')

if img.shape[0] > img.shape[1] and not (f+'.jpg') in exitListV:

shutil.copyfile(focusPic,saveDirV+f+'.jpg')

大致逻辑就是,把Assets文件夹里所有大于100KB的文件找出来,然后加上".jpg"后缀,竖版的图片复制到当前文件夹下的WindowsFocusWallpapersV文件夹里,横版的复制到---H文件夹里(Horizontal水平,Vertical竖直)。

每天都打开这个小程序运行一下的话,日积月累就是这个效果:

还可以把桌面背景设置为幻灯片放映,文件夹就选那个H文件夹,这样桌面壁纸会自动更换。

经过测试,Python生成的exe在另外的电脑上运行有问题,于是重新用C#实现了一下,体积大大减小,只有6KB,目前运行正常。

欢迎分享、反馈。

文件名称:SaveFocusImages.zip

链接: https://pan.baidu.com/s/1eT1fc1G 密码: jt1f

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180217G0FYNS00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券