Le mercredi 10 août 2011 15:40:33, Edi.Karadumi a écrit : > Hello im trying to warp an image using 4 or more gcp points. I have already > done it in c++, but my project is in c# so im trying to convert it. I got > the following example from the GDAL warp API tutorial and adjusted it for > my needs. I have done most of the other parts but i cant convert the > following part > > // Establish reprojection transformer. > > psWarpOptions->pTransformerArg = > GDALCreateGenImgProjTransformer( hSrcDS, > GDALGetProjectionRef(hSrcDS), > hDstDS, > GDALGetProjectionRef(hDstDS), > TRUE, 0.0, 1 ); > psWarpOptions->pfnTransformer = GDALGenImgProjTransform; > > I cant find GDALCreateGenImgProjTransformer to create the transformer. How > can i adapt it i C#?
There's no SWIG bindings for using those low level warp API. The closes match I see is the gdal.ReprojectImage() API that will establish a GenImgProjTransform and proceed to the warping itself. You can see its C++ implementation here : http://trac.osgeo.org/gdal/browser/trunk/gdal/alg/gdalwarper.cpp > > Best Regards > Edi Karadumi > > > > > > > This is the official Example > > #include "gdalwarper.h" > > int main() > { > GDALDatasetH hSrcDS, hDstDS; > > // Open input and output files. > > GDALAllRegister(); > > hSrcDS = GDALOpen( "in.tif", GA_ReadOnly ); > hDstDS = GDALOpen( "out.tif", GA_Update ); > > // Setup warp options. > > GDALWarpOptions *psWarpOptions = GDALCreateWarpOptions(); > > psWarpOptions->hSrcDS = hSrcDS; > psWarpOptions->hDstDS = hDstDS; > > psWarpOptions->nBandCount = 1; > psWarpOptions->panSrcBands = > (int *) CPLMalloc(sizeof(int) * psWarpOptions->nBandCount ); > psWarpOptions->panSrcBands[0] = 1; > psWarpOptions->panDstBands = > (int *) CPLMalloc(sizeof(int) * psWarpOptions->nBandCount ); > psWarpOptions->panDstBands[0] = 1; > > psWarpOptions->pfnProgress = GDALTermProgress; > > // Establish reprojection transformer. > > psWarpOptions->pTransformerArg = > GDALCreateGenImgProjTransformer( hSrcDS, > GDALGetProjectionRef(hSrcDS), > hDstDS, > GDALGetProjectionRef(hDstDS), > FALSE, 0.0, 1 ); > psWarpOptions->pfnTransformer = GDALGenImgProjTransform; > > // Initialize and execute the warp operation. > > GDALWarpOperation oOperation; > > oOperation.Initialize( psWarpOptions ); > oOperation.ChunkAndWarpImage( 0, 0, > GDALGetRasterXSize( hDstDS ), > GDALGetRasterYSize( hDstDS ) ); > > GDALDestroyGenImgProjTransformer( psWarpOptions->pTransformerArg ); > GDALDestroyWarpOptions( psWarpOptions ); > > GDALClose( hDstDS ); > GDALClose( hSrcDS ); > > return 0; > } > > -- > View this message in context: > http://osgeo-org.1803224.n2.nabble.com/C-Bindings-warp-image-using-gcp-tp6 > 672396p6672396.html Sent from the GDAL - Dev mailing list archive at > Nabble.com. > _______________________________________________ > gdal-dev mailing list > gdal-dev@lists.osgeo.org > http://lists.osgeo.org/mailman/listinfo/gdal-dev _______________________________________________ gdal-dev mailing list gdal-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/gdal-dev