使用colormap向TIFF添加透明度

时间:2016-04-19 17:31:03

标签: c++ tiff

我有一个8位图像,我写为TIFF,我使用以下代码指定颜色图:

// given the name of a colormap, get the values as r,g,b,a,....
const vector<unsigned char>& cmap = getColormap(colormap);
assert(cmap.size() == 256 * 4);

unsigned short red[256], green[256], blue[256];
for (size_t i = 0; i < 256; ++i)
{
    const size_t j = i * 4;
    red[i] = cmap[j];
    green[i] = cmap[j+1];
    blue[i] = cmap[j+2];
}
TIFFSetField(tif, TIFFTAG_SAMPLESPERPIXEL, 1);
TIFFSetField(tif, TIFFTAG_BITSPERSAMPLE, 8);
TIFFSetField(tif, TIFFTAG_PHOTOMETRIC, PHOTOMETRIC_PALETTE);
TIFFSetField(tif, TIFFTAG_COLORMAP, red, green, blue);

这非常有效,可以按预期生成图像。但是,我无法找到任何教程或参考资料,以解释如何设置具有透明度的颜色映射。至少,我希望0的颜色指数完全透明。

0 个答案:

没有答案