CSharpUtils.Drawing.Distance.DistanceMap.DrawGlow C# (CSharp) Метод

DrawGlow() статический публичный Метод

static public DrawGlow ( Bitmap Bitmap, DistanceEntry _DistanceMap, float GlowDistance, ARGB_Rev GlowColor, float>.Func Function = null ) : void
Bitmap System.Drawing.Bitmap
_DistanceMap DistanceEntry
GlowDistance float
GlowColor ARGB_Rev
Function float>.Func
Результат void
		static public void DrawGlow(Bitmap Bitmap, DistanceEntry[,] _DistanceMap, float GlowDistance, ARGB_Rev GlowColor, Func<float, float> Function = null)
		{
			var TransparentColor = (ARGB_Rev)"#00000000";

			if (Function == null) Function = (v) => v;

			Bitmap.Shader((color, x, y) =>
			{
				var Dist = (float)_DistanceMap[x, y].Distance;
				if (Dist == 0 && color.A == 0xFF) return color;
				if (Dist > GlowDistance) return new ARGB_Rev(0, 0, 0, 0);
				var GenColor = ARGB_Rev.Interpolate(GlowColor, TransparentColor, 1 - Function(Dist / GlowDistance));
				return (Dist == 0) ? ARGB_Rev.Mix(color, GenColor) : GenColor;
			});
		}

Same methods

DistanceMap::DrawGlow ( Bitmap Bitmap, DistanceEntry _DistanceMap, float GlowDistance, ARGB_Rev GlowColor, float Min, float Max = 1.0f ) : void

Usage Example

Пример #1
0
 static public void DrawGlow(Bitmap Bitmap, DistanceEntry[,] _DistanceMap, float GlowDistance, ARGB_Rev GlowColor, float Min, float Max = 1.0f)
 {
     DistanceMap.DrawGlow(Bitmap, _DistanceMap, GlowDistance, GlowColor, (f) =>
     {
         return(MathUtils.SmoothStep(Min, Max, f));
     });
 }