fish-zhang 发表于 2025-8-12 17:37:58

朕想知道

高山 发表于 2025-8-13 10:55:12

朕想知道

小明ys 发表于 2025-8-25 17:23:37

import tinify
import sys
from pathlib import Path

tinify.key = "lb7LHzn0hQM2fQTb7FhhByQKRqnK08v4"

def img_size():
    file_path = set_form()
    num = len(file_path)
    set_size = input("请输入尺寸(宽度 高度):")
    for i,each in enumerate(file_path,start=1):
            print(f"({i}/{num})图片<{each.name}>正在压缩处理中,请稍后...")
            source = tinify.from_file(each)
            img = each.name
            if not set_size:
                source.to_file(f"oct_{img}")
            else:
                _ = set_size.split(" ")
                x,y = int(_),int(_)
                if y == 0:
                  method = "scale"
                  resized = source.resize(method,width=x)
                elif x == 0:
                  method = "scale"
                  resized = source.resize(method,height=y)
                else:
                  method = "fit"
                  resized = source.resize(method,width=x,height=y)
                resized.to_file(f"oct_{img}")

def set_form():
    file_path = []
    ins = input("请输入需要压缩的图片名称(回车优化当前文件夹):")
    if ins == "":
      x = ['.jpg','.png','.webp']
      print("开始优化当前文件夹下所有的jpg/png/webp图片")
    elif ins == '.jpg':
      x = ['.jpg']
      print("开始优化当前文件夹下所有的jpg图片")
    elif ins == '.png':
      x = ['.png']
      print("开始优化当前文件夹下所有的png图片")
    elif ins == '.webp':
      x = ['.webp']
      print("开始优化当前文件夹下所有的webp图片")
    for each in x:
      file_path.extend(Path(".").glob(f"*{each}"))
    return file_path

def get_file():
    dragged_path = sys.argv
    files = []
    target = ['.jpg','.png','.webp']
    for each in dragged_path:
      file_path = Path(each)
      if file_path.exists() and file_path.suffix.lower() in target:
            files.append(file_path)
      else:
            print(f"警告:路径无效或不是文件 → {file_path}")

    return files

if __name__ == "__main__":
    files = get_file()
    if files:
      num = len(files)
      for i,each in enumerate(files,start=1):
            print(f"({i}/{num})图片<{each.name}>正在压缩处理中,请稍后...")
            img_size(each.name)
    else:
      img_size()
    print("全部处理完成~")

big痛苦面具 发表于 4 天前

【朕想知道】

applinux 发表于 3 天前

我现在想直接看代码
页: 1 2 3 4 [5]
查看完整版本: 火爆全球的主流图片压缩方案自动化脚本(有彩蛋)