📄 gdalwarper.h
字号:
/****************************************************************************** * $Id: gdalwarper.h,v 1.18 2006/11/07 16:24:08 hobu Exp $ * * Project: GDAL High Performance Warper * Purpose: Prototypes, and definitions for warping related work. * Author: Frank Warmerdam, warmerdam@pobox.com * ****************************************************************************** * Copyright (c) 2003, Frank Warmerdam * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. ****************************************************************************** * * $Log: gdalwarper.h,v $ * Revision 1.18 2006/11/07 16:24:08 hobu * silence errors about no prototype defined for a few functions with void parameters * * Revision 1.17 2005/04/04 15:24:16 fwarmerdam * added CPL_STDCALL to some functions * * Revision 1.16 2004/11/14 04:16:30 fwarmerdam * fixup src alpha support * * Revision 1.15 2004/10/07 15:50:18 fwarmerdam * added preliminary alpha band support * * Revision 1.14 2004/08/11 20:11:47 warmerda * added GDALInitializeWarpedVRT * * Revision 1.13 2004/08/11 19:01:25 warmerda * Added prototypes for GDALAutoCreateWarpedVRT and GDALCreateWarpedVRT * * Revision 1.12 2004/08/09 14:38:27 warmerda * added serialize/deserialize support for warpoptions and transformers * * Revision 1.11 2003/11/22 19:13:31 dron * Added C bindings for GDALWarpOperation functions. * * Revision 1.10 2003/07/04 11:50:57 dron * GRA_CubicSpline added to the list of resampling algorithms. * * Revision 1.9 2003/06/12 11:21:33 dron * Few additional comments. * * Revision 1.8 2003/05/27 20:49:25 warmerda * added REPORT_TIMINGS support * * Revision 1.7 2003/05/07 19:13:06 warmerda * added pre and post warp chunk processor * * Revision 1.6 2003/04/23 05:18:57 warmerda * added multithread support * * Revision 1.5 2003/03/02 05:25:59 warmerda * added some source nodata support * * Revision 1.4 2003/02/22 02:04:11 warmerda * added dfMaxError to reproject function * * Revision 1.3 2003/02/21 15:41:37 warmerda * added progressbase/scale for operation * * Revision 1.2 2003/02/20 21:53:06 warmerda * partial implementation * * Revision 1.1 2003/02/18 17:25:50 warmerda * New * */#ifndef GDALWARPER_H_INCLUDED#define GDALWARPER_H_INCLUDED/** * \file gdalwarper.h * * GDAL warper related entry points and definitions. Eventually it is * expected that this file will be mostly private to the implementation, * and the public C entry points will be available in gdal_alg.h. */#include "gdal_alg.h"#include "cpl_minixml.h"CPL_C_START/*! Warp Resampling Algorithm */typedef enum { /*! Nearest neighbour (select on one input pixel) */ GRA_NearestNeighbour=0, /*! Bilinear (2x2 kernel) */ GRA_Bilinear=1, /*! Cubic Convolution Approximation (4x4 kernel) */ GRA_Cubic=2, /*! Cubic B-Spline Approximation (4x4 kernel) */ GRA_CubicSpline=3,} GDALResampleAlg;typedef int (*GDALMaskFunc)( void *pMaskFuncArg, int nBandCount, GDALDataType eType, int nXOff, int nYOff, int nXSize, int nYSize, GByte **papabyImageData, int bMaskIsFloat, void *pMask );CPLErr CPL_DLL GDALWarpNoDataMasker( void *pMaskFuncArg, int nBandCount, GDALDataType eType, int nXOff, int nYOff, int nXSize, int nYSize, GByte **papabyImageData, int bMaskIsFloat, void *pValidityMask );CPLErr CPL_DLL GDALWarpDstAlphaMasker( void *pMaskFuncArg, int nBandCount, GDALDataType eType, int nXOff, int nYOff, int nXSize, int nYSize, GByte ** /*ppImageData */, int bMaskIsFloat, void *pValidityMask );CPLErr CPL_DLL GDALWarpSrcAlphaMasker( void *pMaskFuncArg, int nBandCount, GDALDataType eType, int nXOff, int nYOff, int nXSize, int nYSize, GByte ** /*ppImageData */, int bMaskIsFloat, void *pValidityMask );/************************************************************************//* GDALWarpOptions *//************************************************************************//** Warp control options for use with GDALWarpOperation::Initialize() */typedef struct { char **papszWarpOptions; /*! In bytes, 0.0 for internal default */ double dfWarpMemoryLimit; /*! Resampling algorithm to use */ GDALResampleAlg eResampleAlg; /*! data type to use during warp operation, GDT_Unknown lets the algorithm select the type */ GDALDataType eWorkingDataType; /*! Source image dataset. */ GDALDatasetH hSrcDS; /*! Destination image dataset - may be NULL if only using GDALWarpOperation::WarpRegionToBuffer(). */ GDALDatasetH hDstDS; /*! Number of bands to process, may be 0 to select all bands. */ int nBandCount; /*! The band numbers for the source bands to process (1 based) */ int *panSrcBands; /*! The band numbers for the destination bands to process (1 based) */ int *panDstBands; /*! The source band so use as an alpha (transparency) value, 0=disabled */ int nSrcAlphaBand; /*! The dest. band so use as an alpha (transparency) value, 0=disabled */ int nDstAlphaBand; /*! The "nodata" value real component for each input band, if NULL there isn't one */ double *padfSrcNoDataReal; /*! The "nodata" value imaginary component - may be NULL even if real component is provided. */ double *padfSrcNoDataImag; /*! The "nodata" value real component for each output band, if NULL there isn't one */ double *padfDstNoDataReal; /*! The "nodata" value imaginary component - may be NULL even if real component is provided. */ double *padfDstNoDataImag; /*! GDALProgressFunc() compatible progress reporting function, or NULL if there isn't one. */ GDALProgressFunc pfnProgress; /*! Callback argument to be passed to pfnProgress. */ void *pProgressArg; /*! Type of spatial point transformer function */ GDALTransformerFunc pfnTransformer; /*! Handle to image transformer setup structure */ void *pTransformerArg; GDALMaskFunc *papfnSrcPerBandValidityMaskFunc; void **papSrcPerBandValidityMaskFuncArg; GDALMaskFunc pfnSrcValidityMaskFunc; void *pSrcValidityMaskFuncArg; GDALMaskFunc pfnSrcDensityMaskFunc; void *pSrcDensityMaskFuncArg; GDALMaskFunc pfnDstDensityMaskFunc; void *pDstDensityMaskFuncArg;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -