簡體   English   中英

C++中JPEG的無損操作

[英]Lossless manipulation of JPEG in C++

我在磁盤上有一個不太正常的 JPEG 文件 - 這個 JPEG 文件在圖像結束 (FFD9) 后面附加了額外的垃圾數據。 但是,JPEG 查看器仍然可以打開此 JPEG 文件。

我希望刪除圖像結束 (FFD9) 后面的那些附加信息。 約束是:

  1. 必須以編程方式完成
  2. 必須無損
  3. 必須使用本機代碼,例如 C++

我發現的一種方法是使用 IrfanView 命令行工具重新保存文件,使用無損 JPG_TRANSFORM 的命令:/jpg_rotate。 后面的附加數據會被自動剝離。

但是,是否有另一種方法可以在 C++ 代碼中執行此操作,如果可能,我不希望使用 IrfanView 之類的 exe 來執行此操作。 我希望在代碼中做所有事情以保持精簡。

我正在考慮檢測文件結尾(FFD9),然后將 EOF 之前的緩沖區保存到另一個 JPEG 中。 但是,我怎樣才能無損地保存緩沖區呢?

我想這是一個文件處理問題,而不是與圖像處理相關的問題。

您只需將圖像文件中直到 EOF 的所有數據寫入生成的圖像文件即可。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM