首页 > Windows开发 > 详细

WPF控件截图

时间:2018-03-06 18:11:21      阅读:192      评论:0      收藏:0      [点我收藏+]

  //截图

        RenderTargetBitmap RenderVisaulToBitmap(Visual vsual, int width, int height)
        {
            var rtb = new RenderTargetBitmap(width, height, 96, 96, PixelFormats.Default);
            rtb.Render(vsual);
 
            return rtb;
        }
 
        public enum ImageFormat { JPG, BMP, PNG, GIF, TIF }
        //图片存入流
        void GenerateImage(BitmapSource bitmap, ImageFormat format, Stream destStream)
        {
            BitmapEncoder encoder = null;
 
            switch (format)
            {
                case ImageFormat.JPG:
                    encoder = new JpegBitmapEncoder();
                    break;
                case ImageFormat.PNG:
                    encoder = new PngBitmapEncoder();
                    break;
                case ImageFormat.BMP:
                    encoder = new BmpBitmapEncoder();
                    break;
                case ImageFormat.GIF:
                    encoder = new GifBitmapEncoder();
                    break;
                case ImageFormat.TIF:
                    encoder = new TiffBitmapEncoder();
                    break;
                default:
                    throw new InvalidOperationException();
            }
 
            encoder.Frames.Add(BitmapFrame.Create(bitmap));
            encoder.Save(destStream);
        }

        //PickColorPlateImage是需要被截取的控件
        void CatchImg()
        {
            Stream fs = File.Create("F:\\test.bmp");
            var bmp = RenderVisaulToBitmap(PickColorPlateImage, (int)PickColorPlateImage.Width, (int)PickColorPlateImage.Height);
            ImageFormat formate = ImageFormat.BMP;
            BitmapSource bit = bmp;
            GenerateImage(bit, formate, fs);
        }

WPF控件截图

原文:https://www.cnblogs.com/kid526940065/p/8515902.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!