ijg的libjpeg库很多系统使用,其V8版本增加了“无损缩放SmartScale”的功能,但被ITU给拒了。哈哈。具体可以看这里,
https://fireattack.wordpress.com/2016/02/21/jpeg/
SmartScale不熟悉的同学可以看这里:https://libjpeg-turbo.org/About/SmartScale
我发现QT的QImage模块可以支持这种SmartScale格式图片,但其他包括微软以及常用的看图软件都不支持。所以,在图片预处理的时候,要发现和剔除这种“非标”Jpeg。下面说说方法,主要是读取JPEG的SOS字段,其内部的Se字段,如果不是63,就是这种非标准的SmartScale JPG文件。使用时一定要小心
参考资料:http://lad.dsc.ufcg.edu.br/multimidia/jpegmarker.pdf (SOS字段介绍)
https://pdfs.semanticscholar.org/2f15/ebe57bb15bf63b23fca0e3f303c05eac21e3.pdf (SmartScale详细规范介绍)