关注公众号“码农帮派”,查看更多系列技术文章:
magick.exe D:\logo_sys.png D:\logo_sys.png
下面的程序可以批量处理文件夹下所有的图片文件:
import os
# rootPath是需要转换的图片所在的根目录
rootPath = "D:/icon"
# magick.exe所在的路径
commandTool = os.getcwdu()+os.sep+"tools"+os.sep+'magick.exe'
# 获得rootPath目录下所有图片文件的全路径
def FindExamAllFiles():
tmp = []
for root, dirs, files in os.walk(rootPath):
for filepath in files:
imgFileFullPath = os.path.join(root, filepath)
if imgFileFullPath.endswith('.png'):
tmp.append(imgFileFullPath)
return tmp
if __name__ == "__main__":
pngPathList = FindExamAllFiles()
for pngPath in pngPathList:
# 拼凑cmd命令
command = "{0} {1} {2}".format(commandTool, pngPath, pngPath)
os.system(command)
import platform # 处理文件夹中单个的图片
def convertsRGBImageFromTmp(iconName): winVerName = platform.win32_ver()[0] if winVerName != None: if winVerName.upper() == '7': arch = platform.architecture()[0] if arch.upper() == '64BIT': commandTool = os.getcwdu()+os.sep+"tools"+os.sep+'magick_64.exe' else: commandTool = os.getcwdu()+os.sep+"tools"+os.sep+'magick.exe' pngPath = os.getcwdu()+os.sep+'tmp'+os.sep+iconName command = "{0} {1} {2}".format(commandTool, pngPath, pngPath) try: os.system(command) except: pass else: return pass
因为sRGB的检测是在win7以及之后版本的系统上才有的,在XP的系统上是无需进行该操作的,Python提供了platform这个库来检测当前系统的版本,我们可以使用platform.win32_ver()[0]获得版本的名称,并进行不同的操作。