python转换图片格式的几种方式

158 阅读3分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第14天,点击查看活动详情

有时候网上下载的图片不在直接用,因为有些系统限制的图片的格式,所以用之前需要转换一下图片格式;

这个用python就能处理;

首先是按照需要用的库,一般情况下只需要按照PIL即可, 对于svg图片,需要安装svglib来处理

安装所需库方法如下:

安装方式推荐有很多种,推荐使用pip;

pip 是 Python 的包安装程序。其实,pip 就是 Python 标准库(The Python Standard Library)中的一个包,只是这个包比较特殊,用它可以来管理 Python 标准库(The Python Standard Library)中其他的包。pip 是一个命令行程序。 安装 pip 后,会向系统添加一个 pip 命令,该命令可以从命令提示符运行。

安装pip:

  • 安装python; 这个是必须安装的;

  • 下载pip:

    官网地址:pypi.org/project/pip…; 下载完毕后,解压

  • 打开命令行窗口,进入到pip解压后的目录;执行代码

    python3 setup.py install
    进行安装, 安装完成后,将pip加入到系统环境变量中

  • 验证 打开命令行窗口,输入pip list 或者pip3 list 在这里插入图片描述

以上只针对于windows系统,其他系统也可以参考;

  • 安装所需库: 打开命令行窗口,输入执行以下代码,并回车

    pip install **

    等待提示第三库安装成功既可;

实现将下载的图片转化为png图片:

png图片是日常最常用的图片,在网上下载的图片转换为png图片基本上都可以满足日常使用;

webp格式等互联网图片

webP是由谷歌推出的一种全新图片文件格式,与JPEG格式一样,WebP是一种有损压缩格式。不同的是,WebP格式的压缩效率更为出色,在同等质量下,WebP格式图像的体积要比JPEG格式图像小40%。目前互联网的流量中有65%为图片

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

#! encoding:utf-8

from PIL import Image

src_img = 'image.webp'
dest_img = 'image.png'
img = Image.open(src_img)
img.save("image-2022.png")

svg图片

svg图片也是互联网常用的图片格式:

svg是一种开放标准的矢量图形语言,是可缩放的矢量图形格式。svg格式的图像可任意放大图形显示,而且边缘异常清晰,生成的文件很小,方便传输,文字在svg图像中保留可编辑和可搜寻的状态,没有字体的限制,所以十分适合用于设计高分辨率的Web图形页面。

svg转换为图片需要用得到的库是svglib,用于读取SVG文件并使用ReportLab开源工具包将它们转换为其他格式;

reportlab是Python的一个标准库,可以画图、画表格、编辑文字,最后可以输出PDF格式。它的逻辑和编辑一个word文档或者PPT很像。

伪代码如下:

from reportlab.graphics import renderPM
from svglib import svglib

drawing = svglib.svg2rlg("img.svg")
renderPM.drawToFile(drawing, "img.png", fmt="PNG")

总结一下:

对于一般的图片格式,使用PIL库打开图片,另存为你需要的图片格式就行;

对于svg图片,需要使用svglib库加载图片,然后使用reportlab来画图成自己需要的格式;