Exiv2标签插入支持



exiv2的功能是否有限制,无法将标记"Exif.SubImage1.OpcodeList3"插入DNG文件?

我正试图将这个标签从一个DNG文件复制到另一个,但没有成功。

我的源文件是使用以下方式打印的:exiv2.exe-b-pa file.dng>output.txt

文件output.txt包含:Exif.SubImage1.OpcodeList3未定义184 0 0 0 1 0 0 1 1 3 0 0 0 0零0 0 0 164 0 0 0 3 63 240 0 119 176 58 28 191 185 132 79 191 248 95 209 63 154 58 10 83 149 62 10 191 117 109 1 60 213 11 0 0 0255 253 213 88 87 206 191 185 163 231 88 112 250 50 63 155 248 100 114 143 207 191 118 180 47 58 216 144 0 0 0 0 00 0 0 0 3 223 227 192 112 254 60 7 63 224 0 0 0

我正试图通过(例如)命令文件将此标记添加到另一个没有它的DNG文件:添加Exif.SubImage1.OpcodeList3未定义"0 0 0 1 0 0 1 3 0 0 0 0 2 0 0 0 4 0 0 3 63 240 0 119 176 58 191 185 132 79 191 248 95 209 63 154 58 10 83 149 62 10 191 117 109 20 1 60 213 11 0 0 0 00 0 0 0了0 0 0 63 240 0 0 0 6 191 185 168 230 29 114 51 63 154 226 203 140 13 160 159 191 117 201 88 36 225 127 123 0 0 0.0 0 0 048 100 114 115 143 207 191 118 180 47 58 216 144 0 0 0 0 00 0 0 0.0 0 0 0 63 223 227 192 112 254 60 7 63 224 0 0 0

但该文件保持不变。

我也尝试过类似的东西:添加Exif.SubImage1.OpcodeList3未定义的"0 0 0 1 0"

但标签仍然没有添加。我怀疑exiv2不支持插入此标记。

我是做错了什么,还是没有得到支持?

问题解决了:这里的答案(关于OpcodeList1)解释了为什么exiv2不操作这样的标签。为了克服这个问题,我更改了tiffimage.cpp,替换为:

        if (   pPrimaryGroups != 0
            && !pPrimaryGroups->empty()
            && group != ifd0Id) {
#ifdef DEBUG
            ExifKey key(tag, groupName(group));
            std::cerr << "Image tag: " << key << " (2)n";
#endif
            return true;
        }

带有:

        if (   pPrimaryGroups != 0
            && !pPrimaryGroups->empty()
            && group != ifd0Id) {
            bool opcode3 = tag == 0xc74e;
#ifdef DEBUG
            ExifKey key(tag, groupName(group));
            if (!opcode3)
                std::cerr << "Image tag: " << key << " (2)n";
            else
                std::cerr << "Not an image tag: " << key << " (2)n";
#endif
            return !opcode3;
        }

相关内容

  • 没有找到相关文章

最新更新