# my_tiny_img **Repository Path**: luodewen/my_tiny_img ## Basic Information - **Project Name**: my_tiny_img - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-08-17 - **Last Updated**: 2026-08-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # tiny-img 有损图片压缩命令行工具。默认输出 **WebP**,也可用参数输出 PNG / JPEG / AVIF。 思路接近 TinyPNG:解码后做有损重编码,并去掉无用元数据。 | 格式 | 做法 | |---|---| | WebP(默认) | libwebp 有损编码 | | PNG | 颜色量化(最多 256 色)+ oxipng | | JPEG | 渐进式 JPEG,透明区域铺白底 | | AVIF | rav1e / ravif 有损编码 | ## 依赖 - Rust 1.85+ - 编译 WebP 需要本机 C 编译器(macOS 一般已带 Clang) PNG 量化使用 [imagequant](https://pngquant.org/lib/),因此本项目以 **GPL-3.0-or-later** 发布。 ## 打包二进制 ```bash cargo build --release # 产物:target/release/tiny-img # 当前已打好一份:dist/tiny-img ``` 这是单个 macOS arm64 可执行文件,不依赖 Rust 工具链,拷到别处也能跑。 ```bash # 装到自己的 PATH(可选) cp dist/tiny-img /usr/local/bin/tiny-img ``` ## 用法 ```bash # 默认输出 WebP ./dist/tiny-img photo.jpg # 指定格式 ./dist/tiny-img photo.png -f avif ./dist/tiny-img photo.png -f png ./dist/tiny-img photo.png -f jpeg # 质量 1–100,默认 80 ./dist/tiny-img photo.jpg -q 70 # 输出到指定文件 / 目录 ./dist/tiny-img photo.jpg -o out/hero.webp ./dist/tiny-img a.png b.jpg -o out/ --overwrite ``` 同格式压缩时,会写成 `原名.tiny.ext`,避免覆盖原文件。已存在的输出默认不覆盖,需要时加 `--overwrite`。 输入支持 JPEG、PNG、WebP、GIF(第一帧)、BMP、TIFF。