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();