zoukankan      html  css  js  c++  java
  • 将webp格式的图像批量转化成jpg

    有读公众号的习惯,有时候看到喜欢的图片难免想保存下来,然后再用word文档或者其他啥的编辑一下,但是word文档并不支持webp,添加到word文档后是不会显示的。所以想着转换成jpg格式的。

    首先是单个文件的转换:

    import os
    from PIL import Image
    
    path = r"C:Usersxxx1.webp" # 打开单张图片
    im=Image.open(path) # 打开路径
    im.load() # 加载图片
    im.save(r"C:Usersxxx1.jpg") # 存储为jpg格式
    # os.remove(path)
    

     

    当然,有时候不止一个文件,所以还得有个批量处理的:

    class processImage():
        """
            一个将批量将webp文件转换成jpg的程序
        """
        def __init__(self):
            self.path = r'C:Usersxxx1' # 就一个参数,就是文件夹的位置
    
        # 读取文件夹下的文件
        def loadFile(self):
            fileList = os.listdir(self.path) # 读取文件夹下的所有文件(包含文件夹)
            return fileList # 返回列表
    
        # 查找文件夹下所有webp的图像
        def webp2jpg(self, fileList:list):
            for item in fileList: # 循环读取列表,得到的item是文件名
                if item.endswith('.webp'): # 如果文件名以.webp结尾
                    src = os.path.join(os.path.abspath(self.path), item) # 获取文件的绝对路径
                    print("src=", src) # 打印看是否符合预期
                    im = Image.open(src) # 绝对路径打开.webp格式的文件
                    im.load() # 加载
                    save_name = src.replace('webp','jpg') # 保存的文件名
                    im.save('{}'.format(save_name), 'JPEG') # 保存
                    # os.remove(src) # 删除源文件
    
    if __name__ == "__main__":
        nc = processImage()
        fileList = nc.loadFile()
        nc.webp2jpg(fileList)
    

      

    最后一种情况就是,文件夹下有文件夹,子文件夹下也有webp格式的文件,要将他们也处理成jpg格式的,当然,可以手动移动到一个目录,然后用上面的批量代码处理。也可以用os模块,将子文件夹下的webp文件移动到我们想要的文件夹。这里我用“就地处理”的方式进行处理,就是在哪个文件夹转换完后还保存在哪个文件夹。

  • 相关阅读:
    jQuery 自执行函数
    IRelationalOperator空间关系接口简介
    9.2 空间拓扑运算[转]
    解决关于ArcGIS10.2服务手动启动的问题
    Multipart to single part feature
    Multipart polyline to single part lines
    VS2015 C#6.0 中的没有实现/支持的特性
    VS2015 C#6.0 中的那些新特性
    ArcGIS中各种合并要素(Union、Merge、Append、Dissolve)的异同点分析 转载
    FME2010 案例分析: 动态批量转换
  • 原文地址:https://www.cnblogs.com/mafu/p/15428480.html
Copyright © 2011-2022 走看看