有时候网上下载的图片不在直接用,因为有些系统限制的图片的格式,所以用之前需要转换一下图片格式;
这个用python就能处理;
首先是按照需要用的库,一般情况下只需要按照PIL即可,
对于svg图片,需要安装svglib来处理
安装所需库方法如下:
安装方式推荐有很多种,推荐使用pip;
pip 是 Python 的包安装程序。其实,pip 就是 Python 标准库(The Python Standard Library)中的一个包,只是这个包比较特殊,用它可以来管理 Python 标准库(The Python Standard Library)中其他的包。pip 是一个命令行程序。 安装 pip 后,会向系统添加一个 pip 命令,该命令可以从命令提示符运行。
安装pip:
- 安装python; 这个是必须安装的;
下载pip:
> 官网地址:https://pypi.org/project/pip/#downloads; 下载完毕后,解压
打开命令行窗口,进入到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来画图成自己需要的格式;