当前位置:首页 > Windows程序 > 正文

WPF控件截图

2024-03-31 Windows程序

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

        }

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/34390.html

Jm-杰米博客Jamie
草根站长的技术交流乐园!IT不会不要紧快来好好学习吧!
  • 20786文章总数
  • 7494588访问次数
  • 建站天数
  • 友情链接