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库。

 

参考文献:

 

1.   用libtiff库写标准.tif传真文件

 

2.   用libtiff 进行图形编程


3. libtiff中的tag标签含义

转载自:https://blog.csdn.net/clever101/article/details/27868399

You may also like...