如何使用python pil将gif文件更改为png文件

时间:2011-07-14 06:40:07

标签: python image python-imaging-library

这是我的代码:

import Image,glob

files = glob.glob("/small/*.gif") 

for imageFile in files:
    print "Processing: " + imageFile
    try:
        im = Image.open(imageFile)
        im.save( "/small_/", "png" )
    except Exception as exc:
        print "Error: " + str(exc)

但显示错误:

  File "f.py", line 13
    im.save( "/small_/", "png" )
     ^
SyntaxError: invalid syntax

所以我该怎么做,

感谢

更新

import Image,glob,os

files = glob.glob("small/*.gif") 

for imageFile in files:
    filepath,filename = os.path.split(imageFile)
    filterame,exts = os.path.splitext(filename)
    print "Processing: " + imageFile,filterame
    im = Image.open(imageFile)
    im.save( 'small_/'+filterame+'.png','PNG')

4 个答案:

答案 0 :(得分:2)

尝试将您的代码复制并粘贴到您的编辑器中,它对我来说非常好。 你似乎有一些不可打印的字符或类似的东西。

另外,请查看PIL documentationsave需要文件名或文件对象,而不是文件夹。

答案 1 :(得分:0)

您应该修复的一件事是向save添加文件名:im.save("/small_/" + filename_you_make_up + ".png", "png")。这不应该对语法错误负责,但它会解决你的下一个问题。

答案 2 :(得分:0)

这是将文件夹a.gif中名为/gifs/的文件转换为a.gif.png的python代码:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
from PIL import Image, ImageDraw, ImageFont #dynamic import

gif='gifs/a.gif'
img = Image.open(gif)
img.save(gif+".png",'png', optimize=True, quality=100)

来源:https://gist.github.com/Kennyl/5854a11a0793a90fc8ea6c4746ff9720

答案 3 :(得分:0)

这是一个python代码,它将文件夹.gif中的所有/gifs/文件转换为.gif.png文件:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
from PIL import Image, ImageDraw, ImageFont #dynamic import


import os
rootdir = 'gifs'
extensions = ('.gif')

for subdir, dirs, files in os.walk(rootdir):
    for file in files:
        ext = os.path.splitext(file)[-1].lower()
        if ext in extensions:
            print (os.path.join(subdir, file))

            gif=os.path.join(subdir, file)
            img = Image.open(gif)
            img.save(gif+".png",'png', optimize=True, quality=100)

来源:https://gist.github.com/Kennyl/5854a11a0793a90fc8ea6c4746ff9720