public static void Convert( PixelBox src, PixelBox dst, IPixelConverter pixelConverter )
{
unsafe
{
byte* srcptr = (byte*)( src.Data.ToPointer() );
byte* dstptr = (byte*)( dst.Data.ToPointer() );
int srcSliceSkip = src.SliceSkip;
int dstSliceSkip = dst.SliceSkip;
int k = src.Right - src.Left;
for ( int z = src.Front; z < src.Back; z++ )
{
for ( int y = src.Top; y < src.Bottom; y++ )
{
for ( int x = 0; x < k; x++ )
{
pixelConverter.Convert( srcptr, dstptr, x );
}
srcptr += src.RowPitch * PixelUtil.GetNumElemBytes( src.Format );
dstptr += dst.RowPitch * PixelUtil.GetNumElemBytes( dst.Format );
}
srcptr += srcSliceSkip;
dstptr += dstSliceSkip;
}
}
}
}