给同事写的图片压缩工具,主打一个简单粗暴

查看 118|回复 10
作者:Eliauk66   
使用说明
[ol]
  • 第一次打开需要输入api_key,写给同事自用的,直接调用了的tinyfy的接口,每月500次,获取key:https://tinypng.com/developers
  • 将要压缩的图片拖拽放入该程序图片上即可,不需要双击打开程序
  • 压缩完成后,会在原图所在位置生成压缩后的图片
  • 自行切换api_key,可以在我的电脑-文档-key.txt进行修改
    [/ol]


    示意.gif (69.68 KB, 下载次数: 0)
    下载附件
    2023-4-13 10:56 上传

    下载地址
    https://wwqt.lanzoum.com/ikx1N0sv7p9g
    密码:52pj
    用python写的,没啥技术含量
    # -*- coding: utf-8 -*-
    # @Time : 2023/4/12 17:37
    # @AuThor : Ryan
    # @file : tiny_main.py
    import sys
    import os
    import tinify
    import msvcrt
    import tempfile
    from cert import CERT_DATA
    # 解决打包后缺少CA证书问题
    temp_cert = tempfile.NamedTemporaryFile(delete=False, encoding="utf-8", mode="w")
    temp_cert.write(CERT_DATA)
    temp_cert.flush()
    os.environ['REQUESTS_CA_BUNDLE'] = temp_cert.name
    KEY_FILENAME = "key.txt"
    DOCUMENTS_PATH = os.path.join(os.path.expanduser("~"), "Documents")
    filename = sys.argv[1]
    def showerror():
        while True:
            if msvcrt.getch():
                return
    def main():
        key_path = os.path.join(DOCUMENTS_PATH, KEY_FILENAME)
        if os.path.exists(key_path):
            with open(key_path, "r") as f:
                tinify.key = f.read().strip()
        else:
            key = input("请输入您的tinify_KEY:")
            with open(key_path, "w") as f:
                f.write(key)
            tinify.key = key
        print("正在压缩图片...")
        try:
            source = tinify.from_file(filename)
            optimized_filename = os.path.splitext(filename)[0] + "_压缩图片" + os.path.splitext(filename)[1]
            source.to_file(optimized_filename)
        except tinify.errors.AccountError:
            print("API错误或上限,请检查tinyfy key!\n我的电脑-文档-key,进行修改\n按任意键关闭程序...")
            showerror()
        except tinify.errors.ClientError:
            print("文件格式不正确!!!\n按任意键关闭程序...")
            showerror()
        except :
            print("网络连接失败,请稍后重试!\n按任意键关闭程序...")
            showerror()
    if __name__ == '__main__':
        main()

    图片, 程序

  • Eliauk66
    OP
      


    obob 发表于 2023-4-17 16:13
    为啥会报毒呢

    可能是调用了os库的问题,加个白名单就完了,不放心就自己用上面源码打个包
    Antony丶   

    收到,谢谢
    TWYX   

    拿走学习一下,谢谢分享
    hza9099   

    哈哈。确实简单粗暴!
    RobynShao   

    收到,谢谢,哈哈哈哈
    wen6133   

    谢谢楼主分享
    vethenc   

    感谢分享。人生苦短,我用python!
    Christz   

    这个可以学习一下,感谢分享
    lvcha128   

    这个可以学习一下
    您需要登录后才可以回帖 登录 | 立即注册

    返回顶部