C++中JPEG的无损处理



我在磁盘上有一个JPEG文件,它不太正常-这个JPEG文件在图像末尾(FFD9)后面附加了额外的垃圾数据。不过,JPEG查看器仍然可以打开此JPEG文件。

我希望删除图像末尾(FFD9)后面的附加信息。限制条件是:

  1. 必须按程序进行
  2. 必须是无损的
  3. 必须使用本机代码,例如C++

我发现的一种方法是使用IrfanView命令行工具,使用无损JPG_TRANSFORM的命令:/JPG_rotate重新保存文件。后面的附加数据会自动剥离

然而,有没有另一种方法可以让我在C++代码中做到这一点,如果可能的话,我不希望使用像IrfanView这样的ex来做这件事。我希望在代码中做所有事情来保持精简。

我正在考虑检测文件结尾(FFD9),然后在EOF之前将缓冲区保存为另一个JPEG。但是,如何无损地保存缓冲区?

我想这是一个文件处理问题,与图像处理无关。

您所需要做的就是将图像文件中的所有数据写入最终图像文件中,直到EOF。

相关内容

  • 没有找到相关文章

最新更新