Thomas, > > I'm using the GDALWarp api from C++ to reproject and cut various input > images. In general this works very well for my purposes, except that for > paletted images I have to use NearestNeighbour resampling, > > I would like to use Bilinear or higher order resampling, and wonder if > there is any way to expand a paletted image to true RGB during the warp > process, so I can use these resampling methods.
No, you must use an intermediate step before. > > Alternatively, is there a way to do this conversion (from code) before the > warp without having to run through the entire image in memory? You can use a in-memory VRT dataset to do on-the-fly expansion to RGB. With the AddComplexSource() method of VRTSourcedRasterBand class: CPLErr AddComplexSource( GDALRasterBand *poSrcBand, int nSrcXOff=-1, int nSrcYOff=-1, int nSrcXSize=-1, int nSrcYSize=-1, int nDstXOff=-1, int nDstYOff=-1, int nDstXSize=-1, int nDstYSize=-1, double dfScaleOff=0.0, double dfScaleRatio=1.0, double dfNoDataValue = VRT_NODATA_UNSET, int nColorTableComponent = 0); Set nColorTableComponent to 1,2,3 for respectively R,G,B. This is what gdal_translate will do if you use "gdal_translate -of VRT -expand rgb pct.tif out.vrt" Even -- Spatialys - Geospatial professional services http://www.spatialys.com _______________________________________________ gdal-dev mailing list gdal-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/gdal-dev