Belaid MOA wrote:
Greetings everyone,
I noticed that some of the GTiff images I am working with are single
bands and have a ColorInterp=Palette (they are colored when viewed in
tiff viewer). So, I assume they are using a Color Table to achieve that.
Am I right? Where can I find some tutorials or C/C++ examples using
GDALColorTable to associate a color table with a single band image?
Belaid,
The following is an example of creating a color table:
// Allocate memory for colour table and read it
if ( poDS->sInfoHeader.iClrUsed )
poDS->nColorTableSize = poDS->sInfoHeader.iClrUsed;
else
poDS->nColorTableSize = 1 << poDS->sInfoHeader.iBitCount;
poDS->pabyColorTable =
(GByte *)VSIMalloc2( poDS->nColorElems, poDS->nColorTableSize );
if (poDS->pabyColorTable == NULL)
{
CPLError(CE_Failure, CPLE_OutOfMemory, "Color palette will be
ignored");
poDS->nColorTableSize = 0;
break;
}
VSIFSeekL( poDS->fp, BFH_SIZE + poDS->sInfoHeader.iSize, SEEK_SET );
VSIFReadL( poDS->pabyColorTable, poDS->nColorElems,
poDS->nColorTableSize, poDS->fp );
GDALColorEntry oEntry;
poDS->poColorTable = new GDALColorTable();
for( i = 0; i < poDS->nColorTableSize; i++ )
{
oEntry.c1 = poDS->pabyColorTable[i * poDS->nColorElems + 2];
// Red
oEntry.c2 = poDS->pabyColorTable[i * poDS->nColorElems + 1];
// Green
oEntry.c3 = poDS->pabyColorTable[i * poDS->nColorElems];
// Blue
oEntry.c4 = 255;
poDS->poColorTable->SetColorEntry( i, &oEntry );
}
The color table can be associated with a band using:
GDALSetColorTable(GDALRasterBandH,GDALColorTableH);
In the case of creating a GeoTIFF file, you may need to
pass the creation option PHOTOMETRIC=PALETTE to ensure the
created file has a palette.
Best regards,
--
---------------------------------------+--------------------------------------
I set the clouds in motion - turn up | Frank Warmerdam, [email protected]
light and sound - activate the windows | http://pobox.com/~warmerdam
and watch the world go round - Rush | Geospatial Programmer for Rent
_______________________________________________
gdal-dev mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/gdal-dev