用Python转换图像格式,超全!

2022-11-28 14:34:44 浏览数 (2)

人生苦短,快学Python!

最近我遇到了Python转换图像格式问题,正好干脆总结了一波,将一些奇怪的图片格式(webp格式、jfif格式、svg格式)转换为常见的jpg、png图片格式。

jfif图片格式转换

大家好,我是朱小五。最近下载了一堆图片文件,想用做公众号文章的封面,但是发现很多都是jfif格式的。

其实jfif格式图片存储格式之一,由JPEG格式衍生而来,后缀为".jfif"。下面我们用Python将新建文件夹下的jfif格式的图片,全部转换成png格式。

在交互式环境中输入如下命令:

代码语言:javascript复制
import glob
import os
from PIL import Image

for i in glob.glob('D:\下载\新建文件夹\*.jfif', recursive=True):
    print(i)
    img = Image.open(i)
    path1 = os.path.split(i)[0]
    path2 = os.path.split(i)[1].replace("jfif","png")
    new_path = os.path.join(path1,path2)
    img.save(new_path)

输出结果:

svg图片格式转换

接下来我们用Python将svg格式的图片,全部转换成png格式。

这里我们需要安装一个svglib模块,它用于读取SVG文件并使用ReportLab开源工具包将它们(在合理的程度上)转换为其他格式(比如png、pdf等格式)。

https://pypi.org/project/svglib/

代码语言:javascript复制
pip install svglib

在交互式环境中输入如下命令:

代码语言:javascript复制
from reportlab.graphics import renderPM
from svglib.svglib import svg2rlg

drawing = svg2rlg("小日常.svg")
renderPM.drawToFile(drawing, "导出图片.png", fmt="PNG")

输出结果:

webp图片格式转换

现在互联网上下载图片格式都是webp的,而我们实际使用时就需要转换成jpeg或png格式图片。今天我继续分享如何利用python3代码实现将webp格式图片转换成jpeg或png格式图片。

其实思路很简单,使用PIL模块打开图片,另存为就可以了

在交互式环境中输入如下命令:

代码语言:javascript复制
from PIL import Image

img = Image.open("image-2022.webp")
img.load()
img.save("image-2022.png")

输出结果:

人生苦短,快学Python!今天我们分享了将一些奇怪的图片格式(webp格式、jfif格式、svg格式)转换为常见的jpg、png图片格式。实际上图片格式不止这么多,但其他图片格式进行转换基本也是类似的方法,如果今后大家需要这类问题可以试试。

0 人点赞