公告
  
欢迎回来!目前网站流量日益增多服务器负载太大,迫不得已开启邀请码注册,此为赞助,所得费用来续费服务器,感谢支持

朕已阅

常规使用
网站首页
最新动态
板块列表
悬赏大厅
个人中心
任务中心
推广中心
待添加
占位哈哈
占位哈哈
占位哈哈
占位哈哈
占位哈哈
占位哈哈
占位哈哈
占位哈哈
占位哈哈
首页 动态 发帖 版块 我的
 退出
游客  
等级:
绿豆:
经验:
×
首页  /  技术交流  /  源码分享  /  正文

WEBP(图片) to JPG

  341 
 1
 0

现在,许多浏览器默认将图片保存为WebP格式,这是一种高效的图像压缩格式,可以提供更小的文件大小和更快的加载速度。有时我们可能需要将WebP格式的图片转换为其它常见的图片格式,以便更广泛地使用和共享。

我们可以使用的Python写一个WEBP to JPG工具。可以快速将当前目录下的所有WebP格式的图片转换为JPEG格式,并保存在相同的目录下。运行这个脚本非常简单。首先,确保你已经安装了Python和Pillow库(Pillow是一个Python图像处理库,可以处理各种图像格式)。然后,将下面的代码保存为一个Python文件(例如webp_to_jpeg.py):


import os
from PIL import Image

# 获取当前目录下的所有文件名
file_name_list = os.listdir(os.getcwd())

for file_name in file_name_list:
    if file_name.endswith('.webp'):
        # 构建文件路径
        file_path = os.path.join(os.getcwd(), file_name)

        # 打开WebP图片
        im = Image.open(file_path)

        # 检查图片的模式是否为"RGBA"(带有透明通道)
        if 'A' in im.getbands():
            # 创建白色背景图片
            background = Image.new("RGB", im.size, (255, 255, 255))

            # 将WebP图片粘贴到背景上,处理透明通道
            background.paste(im, mask=im.split()[3])

            # 生成新的文件名,将'.webp'替换为'.jpg'
            save_name = file_name.replace('.webp', '.jpg')

            # 构建保存路径
            save_path = os.path.join(os.getcwd(), save_name)

            # 如果生成的JPEG文件不存在,保存图片为JPEG格式
            if not os.path.exists(save_path):
                print(f"{file_name} -> {save_name}")
                background.save(save_path, 'JPEG')
        elif file_name.endswith('.webp.jpg'):
            # 如果文件名以'.webp.jpg'结尾,说明已经被保存为JPEG格式
            print(f"{file_name} 已经被保存为JPEG格式")
        else:
            # 如果不带有透明通道,直接保存为JPEG格式
            save_name = file_name.replace('.webp', '.jpg')
            save_path = os.path.join(os.getcwd(), save_name)
            if not os.path.exists(save_path):
                print(f"{file_name} -> {save_name}")
                im.save(save_path, 'JPEG')

input("回车结束操作")
首先,我们导入了os和PIL库。os库用于操作文件和目录,PIL库用于处理图像。

接下来,通过os.listdir(os.getcwd())获取当前目录下的所有文件名,并存储在file_name_list列表中。

然后,我们使用for循环遍历file_name_list中的每个文件名。

如果文件名以.webp结尾,说明是WebP格式的图片,我们构建文件路径file_path,然后使用Image.open(file_path)打开该图片。

接着,我们检查图片的模式是否为"RGBA"(带有透明通道)。如果是,我们创建一个白色背景图片background,然后使用background.paste(im, mask=im.split()[3])将WebP图片粘贴到背景上,并处理透明通道。

接下来,我们生成新的文件名,将.webp替换为.jpg,并构建保存路径save_path。

如果生成的JPEG文件不存在,我们使用background.save(save_path, 'JPEG')将图片保存为JPEG格式,并打印出转换前后的文件名。


如果文件名以.webp.jpg结尾,说明已经被保存为JPEG格式,我们打印出该文件名,并跳过后续操作。

如果图片不带有透明通道,我们直接将文件名中的.webp替换为.jpg,生成新的文件名和保存路径,并将图片保存为JPEG格式。

最后,通过input("回车结束操作")等待用户按下回车键,以结束操作。


最后打包了EXE文件(要转换的.webp格式的图片和转换软件在同一目录下),双击软件自动运行;

Image


软件下载:WEBP_to_JPG-图片转换(提取码:9009)
标签:
作者签名: 没难度,有态度,不泄气,不放弃。   楼主  2023-09-14 14:37:39
回复列表
xtyituo
2F
xtyituo
2023-09-14 15:18:26 3
无任何商业目的
共0条回复,点击查看回复
【评论】   

wt2020

   wt2020  Lv35
 
加关注   加好友    发消息
  • 文章
    79 
  • 评论
    29 
  • 粉丝
  • 好友
    5
签名: 没难度,有态度,不泄气,不放弃。
 ta 关注的
 荣耀榜单
Powered by HadSky 8.4.7
© 2021-2024 绿软之家
您的IP:3.129.218.179,2024-10-18 14:30:14,Processed in 0.04302 second(s).
拒绝任何人以任何形式在本网站发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表本站立场!
网站内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如内容侵害到你的权益,请联系我们!
本站资源均来自用户或互联网收集,仅供用于学习和交流,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!
Powered by HadSky 8.4.7
© 2021-2024 绿软之家
ICP备案湘ICP备2020018726号-3
公安备案湘公网安备 43041202000037号
(0) 收藏文章