static void Main (string[] args) { var src_bitmap = new System.Drawing.Bitmap (@"C:\Users\Jonathan\Desktop\helo.png"); var dst_bitmap = new System.Drawing.Bitmap (src_bitmap.Width, src_bitmap.Height); Console.WriteLine ("Image Size: {0}x{1}", src_bitmap.Width, src_bitmap.Height); Console.WriteLine ("-------------------------------"); var src_wrap = new BitmapWrapper (src_bitmap); var dst_wrap = new BitmapWrapper (dst_bitmap); src_wrap.BeginUpdate (); dst_wrap.BeginUpdate (); int runs = 1; foreach (var effect in GetEffects ()) { Settings.SingleThreaded = false; // Run once to ensure effect is jitted effect.Render (src_wrap, dst_wrap); var sw = new Stopwatch (); sw.Start (); for (int i = 0; i < runs; i++) { var tcs = new CancellationTokenSource (); var t = effect.RenderAsync (src_wrap, dst_wrap, tcs.Token); //tcs.Cancel (); t.Wait (); } var multi = sw.ElapsedMilliseconds / runs; Settings.SingleThreaded = true; sw.Restart (); for (int i = 0; i < runs; i++) { var tcs = new CancellationTokenSource (); var t = effect.RenderAsync (src_wrap, dst_wrap, tcs.Token); //tcs.Cancel (); t.Wait (); } var single = sw.ElapsedMilliseconds / runs; Console.WriteLine (" {2} {0} | {1} | {3}", (single.ToString () + "ms").PadRight (7), (multi.ToString () + "ms").PadRight (7), (effect.GetType ().Name + ":").PadRight (30), true);// (single / multi) >= 2); } src_wrap.EndUpdate (); dst_wrap.EndUpdate (); //dst_bitmap.Save (@"C:\Users\Jonathan\Desktop\helo2.png"); Console.WriteLine (); Console.WriteLine ("Finished"); Console.ReadLine (); }
public static void Render (this BaseEffect effect, Bitmap source) { var wrapper = new BitmapWrapper (source); effect.Render (wrapper); }
public static void Render(this BaseEffect effect, Bitmap source) { var wrapper = new BitmapWrapper(source); effect.Render(wrapper); }