GeoTiff如何存储颜色表的研究
作者:朱金灿
来源:http://blog.csdn.net/clever101
在一次偶然的机会中得知tiff图像时可以存诸颜色表的,心想以后用GeoTiff来保存图像分类图像就十分方便了。于是研究了如何创建带有颜色表的tif图像,写了一段代码。
代码如下:
#include "geotiffio.h" #include "xtiffio.h" #include <stdlib.h> void CreateTif() { char *fname = "D:\\newgeo.tif"; TIFF *tif=(TIFF*)0; /* TIFF-level descriptor */ GTIF *gtif=(GTIF*)0; /* GeoKey-level descriptor */ // 创建tif图像 tif=XTIFFOpen(fname,"w"); if (!tif) goto failure; gtif = GTIFNew(tif); if (!gtif) { printf("failed in GTIFNew\n"); goto failure; } //设置标签,表明这是索引图像 TIFFSetField(tif, TIFFTAG_PHOTOMETRIC, PHOTOMETRIC_PALETTE); //创建颜色表 uint16 *r, *g, *b; r = (uint16 *) _TIFFmalloc(sizeof(uint16) * 3 * 256); g = r + 256; b = g + 256; for (int i = 255; i >= 0; i--) { b[i] = i; g[i] = i; r[i] = i; } //将颜色表写入到tif图像中 TIFFSetField(tif, TIFFTAG_COLORMAP, r, g, b); _TIFFfree(r); return; failure: printf("failure in makegeo\n"); if (tif) TIFFClose(tif); if (gtif) GTIFFree(gtif); return; }
需要要到的第三方库是:geotiff库和libtiff库。
参考文献: