public RadBitmapData Decode(Stream stream)
        {
            Metafile metaFile = new Metafile(stream);

            int   width       = metaFile.Width;
            int   height      = metaFile.Height;
            float scaleFactor = 1f;

            if (metaFile.Width > maxPixelSize ||
                metaFile.Height > maxPixelSize)
            {
                scaleFactor = Math.Max((float)metaFile.Width / (float)maxPixelSize, (float)metaFile.Height / (float)maxPixelSize);
                width       = (int)(width / scaleFactor);
                height      = (int)(height / scaleFactor);
            }

            // Create a PictureBox control and load the metafile
            PictureBox box = new PictureBox();

            box.Width     = width;
            box.Height    = height;
            box.BackColor = Color.White;
            box.SizeMode  = PictureBoxSizeMode.StretchImage;
            box.Image     = metaFile;

            // Create snapshot of the PictureBox and save it as a bitmap
            Bitmap bmp = new Bitmap(width, height);

            box.DrawToBitmap(bmp, new Rectangle(0, 0, width, height));

            //load the image in WPF
            RadBitmap     result = null;
            RadBitmapData data   = null;

            using (MemoryStream output = new MemoryStream())
            {
                BitmapImage image = new BitmapImage();

                image.BeginInit();
                bmp.Save(output, this.encoder, null);
                output.Seek(0, SeekOrigin.Begin);
                image.StreamSource = output;
                image.EndInit();

                result = new RadBitmap(image);
                data   = new RadBitmapData(result.Width, result.Height, result.GetPixels());
            }

            return(data);
        }
        public RadBitmapData Decode(Stream stream)
        {
            Metafile metaFile = new Metafile(stream);

            int width = metaFile.Width;
            int height = metaFile.Height;
            float scaleFactor = 1f;

            if (metaFile.Width > maxPixelSize || 
                metaFile.Height > maxPixelSize)
            {
                scaleFactor = Math.Max((float)metaFile.Width / (float)maxPixelSize, (float)metaFile.Height / (float)maxPixelSize);
                width = (int)(width / scaleFactor);
                height = (int)(height / scaleFactor);
            }

            // Create a PictureBox control and load the metafile
            PictureBox box = new PictureBox();
            box.Width = width;
            box.Height = height;
            box.BackColor = Color.White;
            box.SizeMode = PictureBoxSizeMode.StretchImage;
            box.Image = metaFile;

            // Create snapshot of the PictureBox and save it as a bitmap
            Bitmap bmp = new Bitmap(width, height);
            box.DrawToBitmap(bmp, new Rectangle(0, 0, width, height));

            //load the image in WPF
            RadBitmap result = null;
            RadBitmapData data = null;
            using (MemoryStream output = new MemoryStream())
            {
                BitmapImage image = new BitmapImage();

                image.BeginInit();
                bmp.Save(output, this.encoder, null);
                output.Seek(0, SeekOrigin.Begin);
                image.StreamSource = output;
                image.EndInit();

                result = new RadBitmap(image);
                data = new RadBitmapData(result.Width, result.Height, result.GetPixels());
            }

            return data;
        }