IPixelFilter Interface

Provides access to members that control a pixel filter.


IPixelFilter defines a simple pixel block filtering operation, which filters (changes) pixel values in place, and does not change pixel type. All rasters support IPixelOperation, which allows getting and setting of a pixel filter on a raster. Once set, the pixel filter will be applied, on IRaster::Read(), to the pixel block after it's read and right before it's returned.

Many local operations, where the output pixel value only depends on the current pixel, and focal operations, where pixels within a small neighborhood are involved to generate an output value, can be modeled as pixel filters. Remapping pixel values, applying a log() function, and etc are examples of local pixel filters. Calculating slope and aspect, image enhancement, and etc are examples of focal pixel filters.

ArcGIS provides many predefined pixel filters, including Lookup Table filter (LutFilter), Remap filter (RemapFilter), Convolution filter (RasterConvolutionFilter), Pansharpening filter (PansharpeningFilter), and etc.

IPixelFilter is designed for writing custom pixel filters. A custom pixel filter will implement IPixelFilter, and provide the size, IPixelFilter::GetSize(), and the center, IPixelFilter::GetCenterPosition(), of the filter moving window (neighborhood). The actual filtering is done inside IPixelFilter::Filter() where a pixel block passes in input pixel data, and carries out output pixel values. IPixelFilter::Filter() is responsible for setting both pixel values, and NoData bit mask. Raster is responsible for applying a custom pixel filter when a pixel block is read. Raster will read extra rows and columns on the borders, if necessary, pass the pixel block into the pixel filter, clip extra rows and columns, and finally set NoData values according to NoData bit mask.


Name Description
Method Filter Filters a pixel block.
Method GetCenterPosition Gets center position of the filter.
Method GetSize Gets dimension of the filter.

IPixelFilter.Filter Method

Filters a pixel block.

Public Sub Filter ( _
    ByVal pBlock As IPixelBlock _
public void Filter (
    IPixelBlock pBlock

IPixelFilter.GetCenterPosition Method

Gets center position of the filter.

Public Sub GetCenterPosition ( _
    ByRef atColumn As Integer, _
    ByRef atRow As Integer _
public void GetCenterPosition (
    ref int atColumn,
    ref int atRow

IPixelFilter.GetSize Method

Gets dimension of the filter.

Public Sub GetSize ( _
    ByRef Columns As Integer, _
    ByRef Rows As Integer _
public void GetSize (
    ref int Columns,
    ref int Rows

Classes that implement IPixelFilter

Classes Description
BackgroundFilter A raster background filter.
ClipFilter A class for clipping filter.
ColormapFilter A raster colormap filter.
FocalMeanFilter A class for focal mean filter.
FocalStatisticsFilter A class for focal statistics filter.
HistogramSpecification A class for histogram specification.
LutFilter A raster LookUp Table filter.
MultibandFilter A class for multiband filter.
NoDataFilter A class for NoData conversion filter.
PansharpeningFilter A class for pansharpening filter.
PixelFilterCollection A raster filter collection.
RasterConvolutionFilter A raster kernel-based filter.
RemapFilter A class for remap filter.
SpeckleFilter A class for speckle filter.


IPixleFilter filters the values of a raster using a pixelfilter.

Your browser is no longer supported. Please upgrade your browser for the best experience. See our browser deprecation post for more details.