zoukankan      html  css  js  c++  java
  • 使用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)

  • 相关阅读:
    span设置宽和高当没有内容的时候也可撑开
    span设置宽和高当没有内容的时候也可以撑开
    块级元素以及内联元素大总结
    内存泄露问题
    Sqlcompletefree
    运用SET ANSI_PADDING OFF创建某个字段为自增列的表,以及插入数据
    Sql Server中通配符
    sql server 2008查询窗口怎么显示行数
    sql server 2008语句中的go有什么用?
    SQL Server 2008 R2[ALTER]列属性修改
  • 原文地址:https://www.cnblogs.com/unionfind/p/3592039.html
Copyright © 2011-2022 走看看