python将全站图片改为webp格式
2018-12-04
技术
如果你关注网页加载速度,图片格式通常是最容易优化的一环。WebP 由 Google 推出,同时支持有损和无损压缩,在大多数网站场景里都能明显减小图片体积。
对于站点图片较多的情况,用 Python 批量转成 WebP 会比手工一张张处理方便很多。下面就用 Pillow 演示如何把 JPG、JPEG、PNG 等图片转换成 WebP。
第一步:安装Pillow包
pip install Pillow
第二步:开始转换为webp
from PIL import Image
imagePath = "bingchuan.jpg" #读入文件名称
outputPath = "bingchuan.webp" #输出文件名称
im = Image.open(imagePath) #读入文件
im.size #可查看图片大小<br>
im.thumbnail((1200,900), Image.ANTIALIAS) #重新设置图片大小<br>im.save(outputPath) #保存<br>
如果你使用的是较新的 Pillow 版本,Image.ANTIALIAS 可能已经被替换为新的重采样写法,这时可以改成 Image.Resampling.LANCZOS。

第三步:批量转换图片为webp
from PIL import Image
from os import walk
def pic_webp(picpath):
imagePath = picpath.split(".")[0]
#文件名称
outputPath = imagePath + ".webp"
#输出文件名称
im = Image.open(imagePath)
#读入文件<br>
im.save(outputPath)
#保存<br>
for (dirpath,dirname,dirfile) in os.walk("./"):
if dirfile.split(".")[1] in ["png","jpeg","jpg"]:
pic_webp(dirpath+"/"+dirfile)
简简单单几句代码就可以把当前目录下的 PNG、JPEG、JPG 图片批量转换成 WebP。真正应用到整站时,除了文件本身要转换,你还要同步处理数据库或文章内容里的图片路径。
实际操作时建议先备份原图,再批量转换。这样如果某些主题、插件或旧浏览器兼容策略需要回退,处理起来会安全很多。
- 原文作者:春江暮客
- 原文链接:https://www.bobobk.com/78.html
- 版权声明:本作品采用 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议 进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。