python 进行图形格式转换

本文先介绍用python 进行图形格式转换。最终是进行批量转换。

图形转换参考下文:

https://medium.com/@ajeet214/image-type-conversion-jpg-png-jpg-webp-png-webp-with-python-7d5df09394c9icon-default.png?t=N7T8https://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')

PNG to JPG:

JPG to WEBP:

WEBP to JPG:

PNG to WEBP:

WEBP to 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 目录下。

你可能感兴趣的:(python,python,开发语言)