1
我在磁盘上有一个不太正常的JPEG文件 - 这个JPEG文件在图像尾端(FFD9)后面附加了额外的垃圾数据。虽然这个JPEG文件仍然可以由JPEG查看器打开。在C++中无损处理JPEG
我希望删除图像结尾(FFD9)后面的附加信息。约束条件是:
- 必须通过程序来完成
- 必须是无损
- 必须使用本地代码,例如C++
我发现的一种方法是使用IrfanView命令行工具重新保存文件,使用无损JPG_TRANSFORM的命令:/ jpg_rotate。后面的附加数据会自动删除。
但是,还有另一种方法可以在C++代码中完成它,如果可能的话,我不希望使用像IrfanView这样的exes来完成它。我希望尽一切努力来保持精益。
我在考虑检测文件结束(FFD9),然后将EOF前的缓冲区保存到另一个JPEG中。但是,我怎样才能无损地保存缓冲区?
如果您只是简单地复制比特位并包括EOF标记,那么对此有什么损失? – 2011-06-02 03:47:25