美文网首页
TinyPNG批量压缩脚本

TinyPNG批量压缩脚本

作者: 林时工快睡觉 | 来源:发表于2024-01-15 23:11 被阅读0次

    TinyPNG 提供了 API,你可以使用它来批量压缩图片。以下是一个简单的 Python 脚本示例,演示如何使用 TinyPNG 的 API 批量压缩图片:

    首先,你需要在 TinyPNG 的网站上注册账号并获取 API 密钥。然后,你可以使用以下脚本:

    import tinify
    import os
    
    # 设置 TinyPNG API 密钥
    tinify.key = "kX53y2cF4QlJsngZ57w17BfhYDF66Hr1tYm1232313"
    
    # 设置要压缩的图片文件夹路径
    input_folder = "/Users/lvxuming/Desktop/HHKB/图片压缩前路径"
    
    # 设置输出文件夹路径
    output_folder = "/Users/lvxuming/Desktop/HHKB/图片压缩后路径"
    
    def compress_image(input_path, output_path):
        try:
            # 压缩图片
            source = tinify.from_file(input_path)
            source.to_file(output_path)
            print(f"已压缩: {input_path}")
        except tinify.errors.AccountError as e:
            print(f"TinyPNG API 密钥错误或已超过限制。错误信息: {e}")
        except tinify.errors.ClientError as e:
            print(f"压缩图片时发生客户端错误。错误信息: {e}")
        except tinify.errors.ServerError as e:
            print(f"TinyPNG 服务器发生错误。错误信息: {e}")
        except tinify.errors.ConnectionError as e:
            print(f"连接到 TinyPNG 服务器时发生错误。错误信息: {e}")
        except Exception as e:
            print(f"发生未知错误。错误信息: {e}")
    
    def batch_compress_images(input_folder, output_folder):
        # 确保输出文件夹存在
        if not os.path.exists(output_folder):
            os.makedirs(output_folder)
    
        # 遍历输入文件夹中的所有图片文件
        for filename in os.listdir(input_folder):
            if filename.endswith(('.png', '.jpg', '.jpeg')):
                input_path = os.path.join(input_folder, filename)
                output_path = os.path.join(output_folder, filename)
    
                # 压缩图片
                compress_image(input_path, output_path)
    
    if __name__ == "__main__":
        batch_compress_images(input_folder, output_folder)
    
    最后执行下脚本代码,压缩成功
    python script.py   
    
    已压缩: /Users/lvxuming/Desktop/HHKB/图片压缩前路径/财富升级弹框_1@3x.png
    

    🔴 注意:每个月只有500张免费

    相关文章

      网友评论

          本文标题:TinyPNG批量压缩脚本

          本文链接:https://www.haomeiwen.com/subject/qvzhodtx.html