使用jxrlib压缩二值图像遇WMP_errUnsupportedFormat错误求助
解决JPEG-XR压缩二值BMP时的
WMP_errUnsupportedFormat错误 错误原因
-106=WMP_errUnsupportedFormat错误说明jxrlib自带的BMP解码器不支持你输入的Image3_3.bmp格式,具体是解析BMP文件头时失败。大概率是因为你的二值图像是1位单色(bitdepth=1)的BMP,或者BMP采用了jxrlib不支持的压缩方式(如RLE压缩),而jxrlib的测试解码器仅支持有限的BMP子格式(通常是未压缩的8位灰度、24/32位真彩色BMP)。
解决方法
转换BMP为兼容格式
将1位二值BMP转换为未压缩的8位灰度BMP(像素值用0表示黑,255表示白),再用jxrlib压缩。可以用ImageMagick命令行工具快速转换:magick convert Image3_3.bmp -depth 8 -compress none Image3_3_8bit.bmp之后再执行你的压缩命令:
JXREncApp -i Image3_3_8bit.bmp -o output.jxr -c 1也可以用GIMP、IrfanView等图形工具手动转换,保存时选择“未压缩”的8位灰度BMP。
验证BMP参数
先确认输入BMP的具体参数,用ImageMagick的identify命令:identify Image3_3.bmp输出中会显示位深度(Depth)和压缩方式(Compression),如果是
Depth: 1或Compression: RLE,就说明是格式不兼容的问题。查看jxrlib的BMP支持范围
你可以打开错误提示里的JXRTestBmp.c文件,查看ParseBMPHeader函数的逻辑,里面会明确列出支持的BMP位深度和压缩类型,比如是否允许1位BMP,是否仅支持未压缩格式。
内容的提问来源于stack exchange,提问作者Sahil Sharma
相关产品推荐
相关产品推荐

