C++ C++;

C++ C++;,c++,image,image-manipulation,jpeg,file-manipulation,C++,Image,Image Manipulation,Jpeg,File Manipulation,我有一个JPEG文件在磁盘上,这是不太正常的-这个JPEG文件有额外的垃圾数据附加在后面的图像结束(FFD9)。不过,JPEG查看器仍然可以打开此JPEG文件 我希望删除图像末尾(FFD9)后面的附加信息。制约因素包括: 必须按程序进行 必须是无损的 必须使用本机代码,例如C++ 我发现的一种方法是使用IrfanView命令行工具,使用无损JPG_TRANSFORM的命令:/JPG_rotate重新保存文件。后面的附加数据将自动剥离 但是,是否还有另外一种方法可以在C++代码中实现,如果可能的话

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

我希望删除图像末尾(FFD9)后面的附加信息。制约因素包括:

  • 必须按程序进行
  • 必须是无损的
  • 必须使用本机代码,例如C++
  • 我发现的一种方法是使用IrfanView命令行工具,使用无损JPG_TRANSFORM的命令:/JPG_rotate重新保存文件。后面的附加数据将自动剥离

    但是,是否还有另外一种方法可以在C++代码中实现,如果可能的话,我不希望使用像IfFielVIEW这样的EXES来做它。我希望在代码中做每件事来保持精简


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

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


    您只需将图像文件中EOF之前的所有数据写入结果图像文件。

    如果您只需将位复制到EOF标记,那么这会有什么损失?