鱼C论坛

 找回密码
 立即注册
楼主: 小甲鱼

[其他] 火爆全球的主流图片压缩方案自动化脚本(有彩蛋)

[复制链接]
发表于 2023-4-29 21:27:24 | 显示全部楼层
哇塞,好羡慕哪些会写的大佬
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-4-30 20:21:58 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-5-1 07:50:20 | 显示全部楼层
本帖最后由 元豪 于 2023-5-1 08:35 编辑
import tinify, os, sys

tinify.key = 'key'

houzhui = ['.jpg', '.png', '.webp']

num = 0
s = t1 = t2 = None
ss = []

def printf(ttt):
    def func():
        ttt(s, t1, t2)
    return func

@printf
def ttt(s, t1, t2):
    print('({}/{})图片<{}>正在压缩处理中, 请稍后...'.format(t2, t1, s))

kkk = sys.argv
if len(kkk) > 1:
    for i in kkk:
        if os.path.splitext(i)[1] in houzhui:
            img = tinify.from_file('{}{}'.format(os.path.splitext(i)[0], os.path.splitext(i)[1]))
            img.to_file('{}{}'.format(os.path.splitext(i)[0] + '_new', os.path.splitext(i)[1]))
            num += 1
            ss.append(os.path.splitext(i)[0] + os.path.splitext(i)[1])
    t1 = num
    for i in range(num):
        t2 = i + 1
        s = ss[i]
        ttt()
else:
    x = input('请输入需要压缩的图片(回车优化当前文件夹): ')
    if not x:
        print('开始优化当前文件下所有.jpg/.png/.webp文件')
        g = input('请输入尺寸(宽度 高度): ')
        if not g:
            for i in os.listdir('./'):
                hou = os.path.splitext(i)[1]
                if hou in houzhui:
                    img = tinify.from_file('{}{}'.format(os.path.splitext(i)[0], os.path.splitext(i)[1]))
                    img.to_file('{}{}'.format('new_' + os.path.splitext(i)[0], os.path.splitext(i)[1]))
                    ss.append(os.path.splitext(i)[0] + os.path.splitext(i)[1])
                    num += 1
            t1 = num
            for i in range(num):
                s = ss[i]
                t2 = i + 1
                ttt()
        elif '0' in g.split():
            w, h = map(int, g.split())
            for i in os.listdir('./'):
                hou = os.path.splitext(i)[1]
                if hou in houzhui:
                    img = tinify.from_file('{}{}'.format(os.path.splitext(i)[0], os.path.splitext(i)[1]))
                    if w == 0:
                        newimg = img.resize(method='scale', height=h)
                    else:
                        newimg = img.resize(method='scale', width=w)
                    newimg.to_file('{}{}'.format('new_' + os.path.splitext(i)[0], os.path.splitext(i)[1]))
                    ss.append(os.path.splitext(i)[0] + os.path.splitext(i)[1])
                    num += 1
            t1 = num
            for i in range(num):
                s = ss[i]
                t2 = i + 1
                ttt()
        else:
            w, h = map(int, g.split())
            for i in os.listdir('./'):
                hou = os.path.splitext(i)[1]
                if hou in houzhui:
                    img = tinify.from_file('{}{}'.format(os.path.splitext(i)[0], os.path.splitext(i)[1]))
                    newimg = img.resize(method='fit', width=w, height=h)
                    newimg.to_file('{}{}'.format('new_' + os.path.splitext(i)[0], os.path.splitext(i)[1]))
                    ss.append(os.path.splitext(i)[0] + os.path.splitext(i)[1])
                    num += 1
            t1 = num
            for i in range(num):
                s = ss[i]
                t2 = i + 1
                ttt()
    else:
        g = input('请输入尺寸(宽度 高度): ')
        if not g:
            img = tinify.from_file('{}{}'.format(os.path.splitext(x)[0], os.path.splitext(x)[1]))
            img.to_file('{}{}'.format('new_' + os.path.splitext(x)[0], os.path.splitext(x)[1]))
            s = '{}{}'.format(os.path.splitext(x)[0], os.path.splitext(x)[1])
            t1 = t2 = 1
            ttt()
        else:
            w, h = map(int, g.split())
            img = tinify.from_file('{}{}'.format(os.path.splitext(x)[0], os.path.splitext(x)[1]))
            if w and h:
                newimg = img.resize(method='fit', width=w, height=h)
            elif not w:
                newimg = img.resize(method='scale', height=h)
            elif not h:
                newimg = img.resize(method='scale', width=w)
            newimg.to_file('new_{}{}'.format(os.path.splitext(x)[0], os.path.splitext(x)[1]))
            s = '{}{}'.format(os.path.splitext(x)[0], os.path.splitext(x)[1])
            t1 = 1
            t2 = 1
            ttt()
    print('全部处理完成~')
        

@小甲鱼 可以把最后一个名额给我吗写了好久
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-5-2 02:36:11 | 显示全部楼层
元豪 发表于 2023-5-1 07:50
@小甲鱼 可以把最后一个名额给我吗写了好久

这个帖子的活动过期很久啦~

不过此时此刻这里有一个活动正在进行 -> https://fishc.com.cn/thread-226860-1-1.html

快冲!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-5-2 07:13:09 | 显示全部楼层
小甲鱼 发表于 2023-5-2 02:36
这个帖子的活动过期很久啦~

不过此时此刻这里有一个活动正在进行 -> https://fishc.com.cn/thread-226 ...

那我可以要少点 , 我是真的想要
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-5-4 04:38:06 | 显示全部楼层
朕想知道
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-5-27 09:05:24 | 显示全部楼层
1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-5-30 17:07:01 | 显示全部楼层
1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-6-24 06:30:36 | 显示全部楼层
1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-7-6 22:53:26 From FishC Mobile | 显示全部楼层
哇!塞,好羡慕哪些会写的大佬
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-6 22:53:48 From FishC Mobile | 显示全部楼层
本帖最后由 C1em 于 2023-8-9 21:04 编辑

新的一周继续加油
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-6 22:53:48 From FishC Mobile | 显示全部楼层
好高级呀,需要仔细研究研究。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-6 23:01:43 From FishC Mobile | 显示全部楼层
6666
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-7-6 23:06:35 From FishC Mobile | 显示全部楼层
本帖最后由 clollipops 于 2023-7-25 18:27 编辑

火爆全球的主流图片压缩方案自动化脚本
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-6 23:30:10 | 显示全部楼层
666,感谢分享,收藏了好好研究研究~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-6 23:43:21 From FishC Mobile | 显示全部楼层
这个值得收藏,反复观看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-7 08:08:36 From FishC Mobile | 显示全部楼层
666  慢慢学
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-7 11:00:34 | 显示全部楼层
打卡,目前我的实力还不允许我写出来呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-7 14:14:57 | 显示全部楼层
see
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-7-7 14:47:27 | 显示全部楼层
朕想知道
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-21 18:05

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表