我有一个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的颜色指数完全透明。