将.jpg图片转换为.png

38

我查阅了相关文档并且搜索了解决方法,但未找到合适的方式。因此,我在这里询问:是否有可用的Python软件包,能够将JPG图片转换为PNG图片?


似乎有Python绑定到ImageMagick:http://www.imagemagick.org/download/python/。我没有使用过它们,但我已经使用过ImageMagick,它可以做你想要的事情。 - Gort the Robot
6个回答

58

你可以使用Python Image Library (PIL)来完成此目的。可能还有其他软件包/库可用,但我之前使用过它来在不同格式之间进行转换。

这适用于Windows下的Python 2.7(Python Imaging Library 1.1.7 for Python 2.7),我正在使用它与2.7.1和2.7.2一起使用。

from PIL import Image

im = Image.open('Foto.jpg')
im.save('Foto.png')

注意,您最初的问题没有提及您正在使用哪个版本的Python或操作系统。 当然,这可能会有所不同 :)


它说需要Python 2.7版本,而我有2.7.3版本却无法安装。我是否漏了什么? - user1417933
1
如果您使用的是Windows操作系统,您需要安装与您的Python版本兼容的PIL(32位或64位)。 - greggo
当我在IrfanView中打开生成的图像时,会弹出警告说它是png扩展名的JPG图像。结果原本是png吗?在64位Windows机器上使用Python 2.7 - Mahendran
1
PIL 已经不再更新了,请使用 Pillow。安装方法请参考这里:https://dev59.com/YWIj5IYBdhLWcg3wn2Zn#20061019 - Gabriel Staples
1
请注意,这些指令仍然有效,因为Pillow是从PIL分支出来的,因此在这种情况下,导入和命令是相同的。 - Gabriel Staples

13

Python图像库:http://www.pythonware.com/products/pil/

来自:http://effbot.org/imagingbook/image.htm

import Image
im = Image.open("file.png")
im.save("file.jpg", "JPEG")

保存

im.save(outfile, options...)

im.save(outfile, format, options...)

将图像保存到指定的文件名。如果省略了格式参数,它会尝试从文件名扩展名中推断出格式。此方法返回 None。

关键字选项可以用于向编写器提供其他指令。如果编写器不识别某个选项,它将被忽略。这本手册后面将详细介绍可用的选项。

您可以使用文件对象而不是文件名。在这种情况下,必须始终指定格式。文件对象必须实现 seek、tell 和 write 方法,并以二进制模式打开。

如果由于某些原因保存失败,此方法将引发异常(通常是 IOError 异常)。如果出现这种情况,此方法可能已经创建了文件,并向其中写入了数据。如果需要,应用程序可以删除不完整的文件。


11

在我寻找一个可以将单个目录中的文件快速转换的工具时,我想分享这个简短的片段,它可以将当前目录中的任何文件转换为.png格式或您指定的其他格式。

from PIL import Image
from os import listdir
from os.path import splitext

target_directory = '.'
target = '.png'

for file in listdir(target_directory):
    filename, extension = splitext(file)
    try:
        if extension not in ['.py', target]:
            im = Image.open(filename + extension)
            im.save(filename + target)
    except OSError:
        print('Cannot convert %s' % file)

4

1
import cv2

image =cv2.imread("test_image.jpg", 1)

cv2.imwrite("test_image.png", image)

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接