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

PhotoController provides more than 50 kinds of image filters. And there are more coming in the future version. This page demonstrates the source code of a simple program by using PhotoController. Due to the constraint of my new web host provider, I am no longer able to provide a live demo. But feel free to download all the demo and their source code.

The following sample code shows how to take a query string parameter and render the given 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: