惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Microsoft Security Blog
Microsoft Security Blog
J
Java Code Geeks
GbyAI
GbyAI
aimingoo的专栏
aimingoo的专栏
L
LangChain Blog
I
InfoQ
D
Docker
F
Fortinet All Blogs
Y
Y Combinator Blog
Martin Fowler
Martin Fowler
月光博客
月光博客
B
Blog
Engineering at Meta
Engineering at Meta
T
Tailwind CSS Blog
罗磊的独立博客
博客园_首页
G
Google Developers Blog
Stack Overflow Blog
Stack Overflow Blog
Recent Announcements
Recent Announcements
D
DataBreaches.Net
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
B
Blog RSS Feed
IT之家
IT之家
V
V2EX

博客园 - imzhi

VS Code 1.86.1 Requires glibc 2.28 or Later vscode 多个光标自动生成从0开始的数字 js 处理 19.9*0.95 浮点数精度问题的正确姿势,不引入第三方库 ssh 无法用密钥登录 send_pubkey_test: no mutual signature algorithm iqoo手机关掉视频彩铃 pc.vivo.com vivo办公套件网页,拼图验证失败的原因 公司自有服务器无法请求在指向自己服务器的其他域名的API 【转】Cialdini Quiz Explained 机械革命code01 v2.0 开机黑屏,电源键是亮着的 html table表格导入excel文件的方法 php实现数字转中文大写金额表示 微信支付api 付款到银行卡v2 商家转账v3 openssl3.0 php 使用 openssl_encrypt des-ecb 加密报错 error:0308010C:digital envelope routines::unsupported php pdo 写入 sqlserver image类型字段的写法 连接位置国外的远程桌面,使用anydesk thinkphp console 命令行打印错误调用堆栈 【gpt搬运】bash脚本压缩png,jpg图片,当图片大小大于60kb或者尺寸大于500px*500px的时候 win10系统休眠、睡眠、关机后进入假死状态的解决方案 如何返回“无法访问此网站,网页可能暂时无法连接,或者它已经永久性地移动到了新网址” dbeaver 升级 24.1.x 版本提示 An error has occurred 的解决
【gpt搬运】bash脚本压缩png,jpg图片,当图片大小大于100kb的...
imzhi · 2024-10-12 · via 博客园 - imzhi

可以编写一个 Bash 脚本,使用 find 命令查找图片文件并利用 imagemagickjpegoptim 以及 pngquant 等工具来压缩图片。如果图片大小大于 100KB,就进行压缩。下面是一个示例脚本:

准备工具:

  • 安装 imagemagick:用于转换图片格式
  • 安装 jpegoptim:用于压缩 .jpg 图片
  • 安装 pngquant:用于压缩 .png 图片

安装命令(适用于 Debian/Ubuntu 系列 Linux):

sudo apt-get update
sudo apt-get install imagemagick jpegoptim pngquant

脚本内容:

#!/bin/bash

# 压缩JPG图片
compress_jpg() {
    local file="$1"
    echo "压缩JPG文件: $file"
    jpegoptim --max=85 "$file"  # 将质量降低到85%,根据需要调整
}

# 压缩PNG图片
compress_png() {
    local file="$1"
    echo "压缩PNG文件: $file"
    pngquant --ext .png --force 128 "$file"  # 将颜色数量减少到128
}

# 查找并压缩图片
find . \( -name "*.png" -o -name "*.jpg" -o -name "*.jpeg" \) -type f | while read file; do
    filesize=$(stat -c%s "$file")
    
    # 如果文件大于100KB
    if [ $filesize -gt 102400 ]; then
        if [[ $file == *.jpg || $file == *.jpeg ]]; then
            compress_jpg "$file"
        elif [[ $file == *.png ]]; then
            compress_png "$file"
        fi
    else
        echo "$file 小于100KB,无需压缩"
    fi
done

echo "压缩完成!"

脚本说明:

  • 使用 find 查找当前目录下所有的 .jpg.jpeg.png 图片文件。
  • 使用 stat -c%s 获取文件大小。
  • 如果文件大于 100KB,则调用相应的压缩函数:
    • .jpg.jpeg 文件使用 jpegoptim 进行压缩。
    • .png 文件使用 pngquant 进行压缩。
  • 如果图片小于 100KB,脚本会跳过该文件。

使用方法:

将脚本保存为 compress_images.sh,然后给予执行权限并运行:

chmod +x compress_images.sh
./compress_images.sh