|
|
优化版 BMP 无损压缩脚本,保存为 BMP.cmd 即可用
- @echo off
- chcp 65001 >nul
- title BMP无损压缩工具 --By smss 优化版
- :: 检查参数
- if "%~2"=="" (
- echo.
- echo BMP无损压缩 -- 重新编码压缩,体积约为原文件1/3,完全无损
- echo.
- echo 用法:BMP.bat 输入BMP文件 输出BMP文件
- echo.
- echo 示例:BMP.bat LG.bmp LG_8bit.bmp
- echo.
- pause >nul
- exit
- )
- :: 检查输入文件是否存在
- if not exist "%~1" (
- echo 错误:未找到输入文件 "%~1"
- pause >nul
- exit
- )
- echo 正在无损压缩:%~1
- echo 输出文件:%~2
- :: ==============================================
- :: 核心:无损重编码为 8bit 索引色 BMP(体积缩小 60%-70%)
- :: ==============================================
- powershell -Command "$bmp = [System.Drawing.Bitmap]::FromFile('%~1'); $opt = [System.Drawing.Imaging.ImageCodecInfo]::GetImageEncoders() | Where-Object {$_.FormatDescription -eq 'Bitmap'}; $par = [System.Drawing.Imaging.EncoderParameters]::new(); $par.Param[0] = [System.Drawing.Imaging.EncoderParameter]::new([System.Drawing.Imaging.Encoder]::ColorDepth, 8); $bmp.Save('%~2', $opt, $par); $bmp.Dispose();"
- echo 压缩完成!
- echo 原文件:%~z1 字节
- if exist "%~2" echo 新文件:%~z2 字节
- echo.
- pause >nul
复制代码
|
|