The Ripple effect distorts the image as if it had been Rippled.

The result is like an image seen through an uneven water surface.

Syntax

[C#]

static void Ripple(Bitmap bitmap, double height, double length, double phase, Nullable<double> speed);

[Visual Basic]

Shared Sub Ripple(bitmap As Bitmap, height As Double, length As Double, phase As Double, speed As Nullable(Of Double))
Params
Name Description
bitmap The bitmap to process
height The amplitude of the wave determines how high the ripples are on the surface of the images. A typical value might be 10 pixels.
length The length of the wave determines how far apart the ripples are placed. A typical value might be 30 pixels.
phase The phase determines if the center of the ripple is a peak or a trough. A typical value might be 0 degrees.
speed There is a general speed versus quality tradeoff. Higher values produce faster results at the expense of quality. If null is provided this defaults to 6.
Notes

None.

Example

[C#]

using (Bitmap bm = (Bitmap)Bitmap.FromFile(Server.MapPath("rez/ming-jun-tan-o6ICDlt5_2k-unsplash.jpg"))) {
  Effects.Ripple(bm, 10, 30, 0, 6);
  bm.Save(Server.MapPath("IG8_Effects_Ripple1.jpg"));
}
using (Bitmap bm = (Bitmap)Bitmap.FromFile(Server.MapPath("rez/ming-jun-tan-o6ICDlt5_2k-unsplash.jpg"))) {
  Effects.Ripple(bm, 15, 30, 0, 6);
  bm.Save(Server.MapPath("IG8_Effects_Ripple2.jpg"));
}
using (Bitmap bm = (Bitmap)Bitmap.FromFile(Server.MapPath("rez/ming-jun-tan-o6ICDlt5_2k-unsplash.jpg"))) {
  Effects.Ripple(bm, 10, 10, 0, 6);
  bm.Save(Server.MapPath("IG8_Effects_Ripple3.jpg"));
}


Here we apply a Ripple edge detection filter using different radii. Ouput files are shown below.


ming-jun-tan-o6ICDlt5_2k-unsplash.jpg


IG8_Effects_Ripple1.jpg


IG8_Effects_Ripple2.jpg


IG8_Effects_Ripple3.jpg