使用jbig2enc编码图片无输出文件问题求助
解决jbig2enc执行后无输出文件及压缩验证问题
问题原因排查
你遇到的找不到gt和original.jb2命令错误,大概率是实际输入的命令存在拼写/格式错误——比如误将重定向符号>写成了管道符|,或者额外输入了不存在的gt命令(比如输入成jbig2 -s original.jpg | gt original.jb2),导致shell把gt和original.jb2当作待执行的命令,自然找不到。
正确执行步骤
确认并修正命令
确保执行的是标准重定向命令,不要添加多余字符:jbig2 -s original.jpg > original.jb2若不确定之前的命令,可通过
history | grep jbig2查看shell历史记录,排查输入错误。验证压缩是否成功
- 命令执行后,用
ls -l查看当前目录,确认是否生成original.jb2文件; - 若仍无文件,尝试将标准错误输出也重定向到文件,排查执行细节:
打开生成的jbig2 -s original.jpg > original.jb2 2>&1original.jb2查看内容,如果是正常的JBIG2二进制数据则没问题,若为错误信息则根据提示调整(比如原图片是彩色图,需先转成灰度二值图); - 补充:JBIG2是针对二值(黑白)图像的压缩算法,若原
original.jpg是彩色图,建议先转成灰度图再处理:# 需要先通过Macports安装imagemagick convert original.jpg -colorspace gray -threshold 50% original_binary.png jbig2 -s original_binary.png > original.jb2
- 命令执行后,用
计算压缩比
成功生成original.jb2后,用以下命令获取文件大小并计算:# 获取原始文件和压缩后文件的字节数 original_size=$(stat -f "%z" original.jpg) compressed_size=$(stat -f "%z" original.jb2) # 计算压缩比(保留两位小数) compression_ratio=$(echo "scale=2; $original_size / $compressed_size" | bc) echo "压缩比: $compression_ratio:1"也可以用
du -h直观查看文件大小:du -h original.jpg original.jb2
内容的提问来源于stack exchange,提问作者Sahil Sharma
相关产品推荐
相关产品推荐

