python按照尺寸筛选适合做壁纸的图片

思路很简单,过程很波折
1、找到需要的库和方法:目录设置、文件读取、尺寸获取文件移动
2、debug:文件排除,文件读取错误

import os,shutil
from PIL import Image

l=l1=os.listdir() # listdir可以读取到子目录和隐藏文件等,于是使用下面的集合推到式过滤出后缀名,这是之后的,之前还或其了ini,通过后缀名过滤掉不需要的文件名/目录名,其实只有两个,一个是子目录,一个是隐藏的ini文件

{i.split('.')[1] for i in l if i.find('.')>0}
Out[78]: {'gif', 'jpg', 'png'}

for i in l1:
    if not ('jpg' in i or 'gif' in i or 'png' in i or 'gif' in i):l.remove(i)

for f in l:
    img=Image.open(f).size
    if img[0]>img[1] and img[1]>=1080:
        shutil.move(f,'./CoolMarket+')
# 这个是所有的横大于竖,竖尺寸大于1080的文件,将其移动到子目录

i=0
while i<lens:
    img=Image.open(l[i]).size
    if img[0]>img[1] and img[1]>=1080:
        shutil.move(f,'./CoolMarket+')
    i+=1
# 这个是用i和while的方法,因为我遇到了提醒,但之后发现提醒并没有停止程序运行,使用这个方法的妙处在于,知道i在那里出错,而且之后可以继续i之后的运行,调试用

packages\PIL\TiffImagePlugin.py:793: UserWarning: Corrupt EXIF data.  Expecting to read 4 bytes but only got 0. 
  warnings.warn(str(msg))
# 这个是我上面提到的跳出的情况,正如上所说,warning并不会中止程序,只是提醒而已

在这里插入图片描述

随口说说,伪装成png的webp,windows不显示他的分辨率信息,也无法形成他的预览,也无法当作壁纸,于是是windows目前并不支持webp,需要转换

在这里插入图片描述

之后只需要在这些图中挑选出合适的获取去除不合适的图片,成为壁纸包,例如一些非16:9的在系统自动处理后,重心不合适的,例如猫老大的几张,格斯的那张。

相关文章

功能概要:(目前已实现功能)公共展示部分:1.网站首页展示...
大体上把Python中的数据类型分为如下几类: Number(数字) ...
开发之前第一步,就是构造整个的项目结构。这就好比作一幅画...
源码编译方式安装Apache首先下载Apache源码压缩包,地址为ht...
前面说完了此项目的创建及数据模型设计的过程。如果未看过,...
python中常用的写爬虫的库有urllib2、requests,对于大多数比...