[英]Lossless manipulation of JPEG in C++
我在磁盤上有一個不太正常的 JPEG 文件 - 這個 JPEG 文件在圖像結束 (FFD9) 后面附加了額外的垃圾數據。 但是,JPEG 查看器仍然可以打開此 JPEG 文件。
我希望刪除圖像結束 (FFD9) 后面的那些附加信息。 約束是:
我發現的一種方法是使用 IrfanView 命令行工具重新保存文件,使用無損 JPG_TRANSFORM 的命令:/jpg_rotate。 后面的附加數據會被自動剝離。
但是,是否有另一種方法可以在 C++ 代碼中執行此操作,如果可能,我不希望使用 IrfanView 之類的 exe 來執行此操作。 我希望在代碼中做所有事情以保持精簡。
我正在考慮檢測文件結尾(FFD9),然后將 EOF 之前的緩沖區保存到另一個 JPEG 中。 但是,我怎樣才能無損地保存緩沖區呢?
我想這是一個文件處理問題,而不是與圖像處理相關的問題。
您只需將圖像文件中直到 EOF 的所有數據寫入生成的圖像文件即可。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.