微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

把silverlight的控件使用图像保存起来之二

来自“涂鸦”代码示例,整理而成

      private void UIElementToFile(UIElement ui_element)
        {
            //保存InkPresenter涂鸦板内绘画的图           
            WriteableBitmap _bitmap = new WriteableBitmap(ui_element,null);
            //  this.showIP.source = _bitmap;

            SaveFileDialog sfd = new SaveFileDialog();

            sfd.Filter = "PNG Files (*.png)|*.png|All Files (*.*)|*.*";
            sfd.DefaultExt = ".png"; sfd.FilterIndex = 1;
            if ((bool)sfd.ShowDialog())
            {
                using (Stream fs = sfd.OpenFile())
                {
                    int width = _bitmap.PixelWidth;
                    int height = _bitmap.PixelHeight;

                    EditableImage ei = new EditableImage(width,height);
                   
                    for (int i = 0; i < height; i++)
                    {
                        for (int j = 0; j < width; j++)
                        {
                            int pixel = _bitmap.Pixels[(i * width) + j];
                            ei.SetPixel(j,i,(byte)((pixel >> 16) & 0xFF),(byte)((pixel >> 8) & 0xFF),(byte)(pixel & 0xFF),(byte)((pixel >> 24) & 0xFF));
                        }
                    }

            //获取流                          Stream png = ei.GetStream();                     int len = (int)png.Length;                     byte[] bytes = new byte[len];                     png.Read(bytes,len);                     fs.Write(bytes,len);                     MessageBox.Show("图片保存成功!");                 }             }         }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐