本文先介绍用python 进行图形格式转换。最终是进行批量转换。
图形转换参考下文:
https://medium.com/@ajeet214/image-type-conversion-jpg-png-jpg-webp-png-webp-with-python-7d5df09394c9https://medium.com/@ajeet214/image-type-conversion-jpg-png-jpg-webp-png-webp-with-python-7d5df09394c9JPG to PNG:
from PIL import Image
filea='a.jpg'
fileb='b.png'
im=Image.open(filea).convert("RGB")
im.save(fileb,'PNG')
这些都可以参照上面的代码修改。
最近看到一种图形格式:avif 还有 heif
原有的代码读取不了。参考:Using AVIF and HEIF images with Python / PIL - Code Calamity
先安装 pip install pillow pillow-avif-plugin --upgrade
然后 :import pillow_avif # Have to import this before importing PIL
这样就可以读取了。
批量转换需要操作系统文件的操作:
可以参考:
How to Get File Extension in Python | DigitalOcean
下面是我批量转换的一个代码:
from PIL import Image
import os.path
pa='C:\\img\\bulb_lb3'
pb=os.path.join(pa,'png')
print(pb)
names = [name for name in os.listdir(pa)
if os.path.isfile(os.path.join(pa, name))]
for name in names:
file_name, file_extension = os.path.splitext(name)
filename=file_name+".png"
filea=os.path.join(pa, name)
fileb=os.path.join(pb, filename)
print(name)
print(filea)
print(fileb)
im=Image.open(filea).convert("RGB")
im.save(fileb,'PNG')
#break
#im.show()
我这个代码是转换webp 文件成png 文件,源文件放img\bulk_lb3 目录下,转换结果放其子目录png 目录下。