求助:实现多种图像有损压缩格式的技术方法(已掌握JPEG方案)
Got it, let's tackle your problem with other lossy image compression formats—since you're already comfortable with ImageMagick, we can build on that plus a few reliable command-line tools that work perfectly for batch processing in your research. Here are actionable, tested solutions for common high-efficiency lossy formats:
1. WebP (Lossy)
WebP delivers better compression ratios than JPEG at similar quality levels, and it’s widely supported now. If your ImageMagick build has WebP support (most recent versions do), you can use mogrify just like you did for JPEG:
# Basic lossy WebP compression with quality 15 (0-100 scale) mogrify -format webp -quality 15 img01.bmp # For better compression (slower speed), adjust the method parameter (1=fastest, 6=best ratio) mogrify -format webp -quality 15 -define webp:method=6 img01.bmp
If your ImageMagick doesn’t have WebP enabled, install the standalone webp package (e.g., sudo apt install webp on Debian/Ubuntu) and use:
cwebp -q 15 img01.bmp -o img01.webp
2. AVIF (Lossy)
AVIF is one of the most efficient modern lossy formats, often outperforming WebP. You have two solid options here:
Using ImageMagick (with AVIF support)
First make sure you’ve installed libavif-dev (Linux) to enable AVIF support in ImageMagick, then run:
# Lossy AVIF with quality 15 (0-100 scale) mogrify -format avif -quality 15 img01.bmp # For finer control, use CRF (lower = better quality, 0-63) instead of quality mogrify -format avif -define avif:crf=30 img01.bmp
Using FFmpeg (if ImageMagick gives trouble)
FFmpeg is a reliable fallback for AVIF compression:
ffmpeg -i img01.bmp -c:v av1 -crf 30 -b:v 0 img01.avif
The -crf value ranges from 0 (lossless) to 63 (max compression); 30 is a good starting point for lossy results.
3. JPEG XL (Lossy)
JPEG XL excels at lossy compression, especially for images that originated as JPEG, but works seamlessly with BMP too. Use ImageMagick (with libjxl-dev installed) or the standalone cjxl tool:
# ImageMagick command for lossy JPEG XL (quality 15, 0-100 scale) mogrify -format jxl -quality 15 img01.bmp # Boost compression ratio with higher effort (1=fast, 9=slowest/best) mogrify -format jxl -quality 15 -define jxl:effort=9 img01.bmp
Standalone tool alternative (install libjxl-tools first):
cjxl img01.bmp img01.jxl -q 15 -e 9
4. BPG (Lossy)
BPG is a niche but highly efficient format based on HEVC. Install libbpg-dev (Linux) to get the bpgenc tool, then run:
# Lossy BPG with quality 15 (note: scale is 0-51, lower = better quality) bpgenc -q 15 img01.bmp -o img01.bpg
Quick Tips for Your Research
- For consistent quality comparisons across formats, map the quality scales carefully (e.g., BPG uses 0-51 instead of the 0-100 most others use).
- All these tools support batch processing: replace
img01.bmpwith*.bmpto compress all BMP files in a directory at once. - If you hit library missing errors, double-check that you’ve installed the required development packages (like
libwebp-devorlibavif-dev) before reinstalling ImageMagick.
内容的提问来源于stack exchange,提问作者Victor

