imageComponent.NET - image processing .NET assemblies
Image Filters in ASP.NET

In this demo, you will be able to experience several built-in image filters in PhotoController. Every image filter might have different parameters, which are fixed in this demo. It's encouraged to download the full package, read the documentation, and try with the full source windows form application to gain better understanding.

PhotoController provides more than 50 kinds of image filters. And there are more coming in the future version. It's difficult to demonstrate all of them. In this page, select one filter in the dropdown, and click [Submit] button, the below image will be updated momentarily.

Image Filter:     

Here is the code that renders the image:

   1:  Response.Clear();
   2:  Response.Expires = 0;
   3:  Response.ContentType = "image/jpeg";
   4:   
   5:  Bitmap canvas = new Bitmap(Server.MapPath("..\\images\\turtle.jpg"));
   6:   
   7:  string filter = Request.QueryString["filter"];
   8:   
   9:  Controller pc = new Controller(canvas);
  10:  Bitmap result;
  11:   
  12:  switch (filter)
  13:  {
  14:      case "Marble":
  15:          {
  16:              MarbleFilter f = new MarbleFilter();
  17:              f.Level = 5;
  18:              f.Movement = 5;
  19:              f.Turbulence = 1;
  20:              f.Edge = EdgeType.Clamp;
  21:              result = new Bitmap(pc.Filter(f));
  22:              break;
  23:          }
  24:      case "Shake":
  25:          {
  26:              ShakeFilter shakeFilter = new ShakeFilter();
  27:              shakeFilter.Edge = EdgeType.Clamp;
  28:              shakeFilter.Level = 10;
  29:   
  30:              result = new Bitmap(pc.Filter(shakeFilter));
  31:              break;
  32:          }
  33:      case "Sphere":
  34:          {
  35:              SphereFilter sphereFilter = new SphereFilter();
  36:              // CenterX and CenterY are percentage of the width and height
  37:              sphereFilter.CenterX = 50;
  38:              sphereFilter.CenterY = 50;
  39:              sphereFilter.Edge = EdgeType.Clamp;
  40:              sphereFilter.Radius = 250;
  41:              sphereFilter.Zoom = 5;
  42:   
  43:              result = new Bitmap(pc.Filter(sphereFilter));
  44:              break;
  45:          }
  46:      case "Twirl":
  47:          {
  48:              TwirlFilter twirlFilter = new TwirlFilter();
  49:              twirlFilter.CenterX = 50;
  50:              twirlFilter.CenterY = 50;
  51:              twirlFilter.Edge = EdgeType.Wrap;
  52:              twirlFilter.Angle = 5;
  53:              twirlFilter.Radius = 200;
  54:   
  55:              result = new Bitmap(pc.Filter(twirlFilter));
  56:              break;
  57:          }
  58:      case "Solarize":
  59:          {
  60:              SolarizeFilter solarizeFilter = new SolarizeFilter();
  61:              solarizeFilter.Level = 100;
  62:   
  63:              result = new Bitmap(pc.Filter(solarizeFilter));
  64:              
  65:              break;
  66:          }
  67:      case "Oil":
  68:          {
  69:              OilFilter oilFilter = new OilFilter();
  70:              oilFilter.BrushSize = 4;
  71:              oilFilter.Coarse = 4;
  72:              result = new Bitmap(pc.Filter(oilFilter));
  73:              
  74:              break;
  75:          }
  76:      case "ZoomBlur":
  77:          {
  78:              ZoomBlurFilter zoomFilter = new ZoomBlurFilter();
  79:              zoomFilter.Level = 5;
  80:              result = new Bitmap(pc.Filter(zoomFilter));
  81:              break;
  82:          }
  83:      case "Sepia":
  84:          {
  85:              SepiaFilter f = new SepiaFilter();
  86:              f.Level = 65;
  87:              result = new Bitmap(pc.Filter(f));
  88:              break;
  89:          }
  90:      case "ColorNoise":
  91:          {
  92:              NoiseFilter f = new NoiseFilter();
  93:              f.ColorNoise = true;
  94:              f.Level = 30;
  95:              result = new Bitmap(pc.Filter(f));
  96:              break;
  97:          }
  98:      case "Sharpen":
  99:          {
 100:              SharpenFilter f = new SharpenFilter();
 101:              f.Level = 8;
 102:              result = new Bitmap(pc.Filter(f));
 103:              break;
 104:          }
 105:      case "Diffuse":
 106:          {
 107:              DiffuseFilter f = new DiffuseFilter();
 108:              f.Level = 10;
 109:              result = new Bitmap(pc.Filter(f));
 110:              break;
 111:          }
 112:      case "HSL":
 113:          {
 114:              Random rand = new Random();
 115:   
 116:              //only change Hue in this demonstration
 117:              float hue = rand.Next(180);
 118:   
 119:              HSLAdjustFilter hslFilter = new HSLAdjustFilter();
 120:   
 121:              // the range of Hue is -180.0 to 180.0
 122:              hslFilter.Hue = hue - 180.0f;
 123:              // the range of Saturation is -1.0 to 1.0
 124:              hslFilter.Saturation = 0;
 125:              // the same to lightness
 126:              hslFilter.Lightness = 0;
 127:              
 128:              result = new Bitmap(pc.Filter(hslFilter));
 129:              break;
 130:          }
 131:      default:
 132:          {
 133:              result = new Bitmap(canvas);
 134:              break;
 135:          }
 136:  }
 137:   
 138:  canvas.Dispose();
 139:  canvas = null;
 140:  pc.Dispose();
 141:  pc = null;
 142:   
 143:  MemoryStream oStream = new MemoryStream();
 144:  result.Save(oStream, ImageFormat.Jpeg);
 145:  Response.BinaryWrite(oStream.ToArray());
 146:   
 147:  result.Dispose();
 148:  result = null;
 149:  Response.End();

[Back to Top]
Comments

If you feel this page can be improved or has any mistake, please enter your valuable opinion here. Or if you cannot find the information you are after, feel free to suggest a subject too. I appreciate any voice.

Your Name:
  
Your Email Address:
  
Comments: