Tiff Windows 成像组件 c++

Tiff Windows Imaging Component c++

我正在尝试将 libtiff 替换为 WIC(因为 libtiff 无法再通过 Black Duck 分析工具)

我用过他们的例子 https://docs.microsoft.com/en-us/windows/win32/wic/-wic-creating-encoder

而且我能够创建一个 tiff。 我还需要更改压缩类型 所以我把代码改成了

    if (SUCCEEDED(hr))
        {
            // This is how you customize the TIFF output.
            PROPBAG2 option = { 0 };
            option.pstrName = L"TiffCompressionMethod";
            VARIANT varValue;
            VariantInit(&varValue);
            varValue.vt = VT_UI1;
            varValue.bVal = WICTiffCompressionRLE;
            hr = pPropertybag->Write(1, &option, &varValue);
            if (SUCCEEDED(hr))
            {
                hr = piBitmapFrame->Initialize(pPropertybag);
            }
}

我的新图片的分辨率单位为 2 我想将它设置为 1

我发现了这个 https://docs.microsoft.com/en-us/windows/win32/wic/-wic-photoprop-system-image-resolutionunit 但我不明白如何使用 WIC 元数据 API 来改变它。

你能帮忙吗?

WIC built-in TIFF 编码器总是将 TIFFTAG_RESOLUTIONUNIT 写为 2(英寸)。您可以使用 WIC 读取现有标签,但不能为该特定元数据项写入不同的值。