Example #1
0
        private void RenderFrame(object sender, DoWorkEventArgs e)
        {
            ProcessCustomFrameEventArgs args = (ProcessCustomFrameEventArgs)e.Argument;

            CustomFrame     nFrame = new CustomFrame();
            WriteableBitmap src    = null;

            if (args.img != null)
            {
                //if we have an IImage, convert it
                src = new WriteableBitmap(Utils.IImageToBitmapSource(args.img));
                args.img.Dispose();
            }
            else if (args.writeablebmp != null)
            {
                //otherwise we can just use the writeablebitmap
                src = args.writeablebmp;
            }

            //set CustomFrame bitmap
            if (src != null)
            {
                src.Freeze();
                nFrame.SetBitmap(src);
            }
            else
            {
                //easier to avoid setting
                nFrame = null;
            }

            e.Result = nFrame;
        }
Example #2
0
        public void SetFrame(IImage nImage)
        {
            if (!isWorking)
            {
                isWorking = true;
                BackgroundWorker bw = new BackgroundWorker();
                bw.DoWork             += RenderFrame;
                bw.RunWorkerCompleted += Render_Complete;

                ProcessCustomFrameEventArgs args = new ProcessCustomFrameEventArgs();
                args.img          = nImage;
                args.writeablebmp = null;

                bw.RunWorkerAsync(args);
            }
        }