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 读取现有标签,但不能为该特定元数据项写入不同的值。
我正在尝试将 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 读取现有标签,但不能为该特定元数据项写入不同的值。