交换Jpeg RGB通道(RGB-> BGR)

时间:2015-05-04 23:27:59

标签: image colors jpeg

我有一个Jpeg RGB单扫描剪辑(使用Adobe App14标记,并且R,G,B组件都在同一扫描中交错)。我想知道是否有办法编辑Jpeg剪辑标题(或附加其他标题,如EXIF),以便解码器可以将R通道解释为B,反之亦然,而不更改其余的比特流?

我曾尝试在扫描标题中交换“扫描组件选择器”的顺序,然后解码器(在本例中为Windows照片查看器)成功显示红色为蓝色,蓝色为红色。但是,ITU-T.81 Jpeg规范明确指出“Csj:扫描组件选择器:每个Csj必须匹配帧头中指定的Ci值之一,并且扫描头中的排序应遵循帧头中的排序“。所以我想改变扫描组件选择器的顺序不是一个有效的选项,除非有任何更新的规范说这不再是限制。

是否有人知道通过添加某种应用数据或修改Jpeg帧或扫描头而不触及扫描数据来交换RGB通道的其他方法?

感谢您的投入。

1 个答案:

答案 0 :(得分:0)

如果您拥有原始格式的图像,则可以使用exiftool修改exif CFA。阵列可能因传感器和格式而异。 对于交换dng文件,您可以使用以下

if (string.length() >= 2 && string.charAt(0) == '"' && string.charAt(string.length() - 1) == '"')
{
    string = string.substring(1, string.length() - 1);
}

其中

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

如果你绝望,你可以考虑将你的Jpg转换为Raw然后再回来