使用Python获取所有非偶数尺寸图片资源信息

前面说到我们要做一套一半尺寸的低分辨率图片,所谓一半,其实都是直接整数除法/2,然后发现前期美术做的资源,好多都是奇数尺寸的,一半之后除不尽,就会带来各种问题。

于是就想先看看都有多少奇数的贴图,马上想到用python拉,但是python我不熟啊,纠结了一小时才弄好。

问题1:要获取目录下所有的png文件,这个简单,直接os.walk所有文件再判断下endswith后缀就好。

问题2:要获取图片的尺寸,这里我用了一个PIL库,可以读取图片,通过size获得尺寸。

貌似问题到这里就解决啦?结果不是的,因为python本来我就自己随便看的,好久不用忘记了,结果遇到两个很纠结的基础问题。

问题3:想把文件尺寸和文件路径放在一行打出来,结果因为用习惯C#了,就直接上+号,结果居然不行,又去找转义序列,研究了半天还是不对,最后发现直接用,连接就好了嘛。

问题4:想判断长或者宽是不是2的倍数,结果不知道怎么从size单获得比如宽度,试了x不对,w不对,width不对,然后因为没有IDE又没有语法提示,去找文档居然也没写!绝望后无意中发现人家是tuple,其实是直接用下标读的。

所以最后代码如下:

import os

from PIL import Image

def VisitDir(path):

  for root,dirs,files in os.walk(path):

    for filespath in files:

      if filespath.endswith('png'):

        im = Image.open(os.path.join(root,filespath))

        if im.size[0]%2==1 or im.size[1]%2==1:

          print(os.path.join(root,filespath),im.size[0],im.size[1])

if __name__=="__main__":

     path="E:\XXX"

     VisitDir(path)

原文地址:https://www.cnblogs.com/unionfind/p/3592039.html