/// <summary> /// Apply filter. /// </summary> /// <param name="bmData">Bitmap data</param> public void Apply(BitmapData bmData) { Bitmap Src = (Bitmap)BitmapFormat.Bitmap(bmData).Clone(); BitmapData bmSrc = BitmapFormat.Lock32bpp(Src); Apply(bmData, bmSrc); BitmapFormat.Unlock(Src, bmSrc); Src.Dispose(); return; }
/// <summary> /// Apply filter. /// </summary> /// <param name="bmData">Bitmap data</param> /// <param name="bmSrc">Bitmap data</param> public void Apply(BitmapData bmData, BitmapData bmSrc) { // Creating resources: Bitmap Src0 = (Bitmap)BitmapFormat.Bitmap(bmSrc).Clone(); BitmapData bmSrc0 = BitmapFormat.Lock32bpp(Src0); // Filter applying: closing.Apply(bmSrc, bmSrc0); subtraction.Apply(bmData, bmSrc); // Delete resources: BitmapFormat.Unlock(Src0, bmSrc0); Src0.Dispose(); }
/// <summary> /// Apply filter. /// </summary> /// <param name="bmData">Bitmap data</param> public void Apply(BitmapData bmData) { Bitmap Max = (Bitmap)BitmapFormat.Bitmap(bmData).Clone(); Bitmap Min = (Bitmap)Max.Clone(); di.Apply(Max); er.Apply(Min); BitmapData bmMax = BitmapFormat.Lock32bpp(Max); BitmapData bmMin = BitmapFormat.Lock32bpp(Min); if (smoothing) { gb.Apply(bmMax); } gb.Apply(bmMin); Apply(bmData, bmMax, bmMin); BitmapFormat.Unlock(Max, bmMax); BitmapFormat.Unlock(Min, bmMin); Max.Dispose(); Min.Dispose(); return; }