static public Bitmap BitmapFromDistanceMap(DistanceEntry[,] DistanceMap)
{
var Bitmap = new Bitmap(DistanceMap.GetLength(0), DistanceMap.GetLength(1));
var Width = Bitmap.Width;
var Height = Bitmap.Height;
Bitmap.LockBitsUnlock(System.Drawing.Imaging.PixelFormat.Format32bppArgb, (BitmapData) =>
{
for (int y = 0; y < Height; y++)
{
var Ptr = ((byte *)BitmapData.Scan0.ToPointer()) + BitmapData.Stride * y;
for (int x = 0; x < Width; x++)
{
byte Distance = (byte)MathUtils.FastClamp((int)(DistanceMap[x, y].Distance * 4), 0, 255);
*Ptr++ = Distance;
*Ptr++ = Distance;
*Ptr++ = Distance;
*Ptr++ = 0xFF;
}
}
});
return Bitmap;
}