前面说到我们要做一套一半尺寸的低分辨率图片,所谓一半,其实都是直接整数除法/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)