2015-05-04 130 views
0

我有一個Jpeg RGB單次掃描剪輯(帶有Adobe App14標記,以及R,G,B組件都在同一掃描中交錯)。我想知道是否有辦法編輯Jpeg剪輯頭(或附加EXIF等其他頭文件),以便解碼器可以將R通道解釋爲B,反之亦然,而無需更改比特流的其餘部分?交換Jpeg RGB通道(RGB-> BGR)

我曾嘗試交換掃描標題中「掃描組件選擇器」的順序,然後解碼器(本例中爲Windows照片查看器)成功顯示紅色爲藍色,然後藍色爲紅色。但是,ITU-T.81 Jpeg規範特別指出:「Csj:掃描分量選擇器:每個Csj應與幀頭中指定的一個Ci值匹配,並且掃描頭中的排序應遵循幀頭中的排序「。所以我猜想改變掃描組件選擇器排序不是一個有效的選項,除非有更新的規範說明這不再是限制。

有沒有人知道通過追加某種應用程序數據或修改Jpeg幀或掃描標題而不觸摸掃描數據來交換RGB通道的其他方法?

謝謝您的輸入。

+0

你確定它是RGB格式?雖然這不是不可能的,但我還沒有聽說過RGB格式的ADOBE JPEG。我聽說過YCbCr和YCbCrK。 – user3344003

+0

@ user3344003 - 似乎不合邏輯(效率不高),但是,Adobe產品使用RGB色彩空間編寫JPEG壓縮圖像。 – BitBank

+0

聽起來像需要讀取圖像數據,交換MCU順序並將其寫回。這並不困難,不會造成任何質量損失。如果您希望解碼圖像的顏色順序不同,則需要修復解碼器,而不是壓縮圖像。 – BitBank

回答

0

如果您有原始格式的圖像,則可以使用exiftool修改exif CFA。陣列可能因傳感器和格式而異。 用於交換DNG文件,你可以使用下面的

exiftool.exe -subifd:cfapattern2="2 1 1 0" file.dng 

0 = Red, 
1 = Green, 
2 = Blue, 

如果你絕望,你總是可以考慮轉換你的JPG格式爲RAW,然後再返回