首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将ImageBrush转换成图像

如何将ImageBrush转换成图像
EN

Stack Overflow用户
提问于 2016-10-04 11:51:17
回答 2查看 2.3K关注 0票数 2

我画了一幅画布

代码语言:javascript
复制
<Canvas Grid.Row="1" Name="PaintCanvas" MouseDown="PaintCanvas_MouseDown" MouseUp="PaintCanvas_MouseUp" MouseMove="PaintCanvas_MouseMove">
        <Canvas.Background>
            <ImageBrush ImageSource="/MyNoteBook;component/Images/LinnedPage.png"/>
        </Canvas.Background>

现在,在我画完它之后,我想将它保存到文件+,希望将它转换成pictureBox、图像或c#代码中的位图。

我是怎么做到的?

已试过

代码语言:javascript
复制
ImageBrush picture = (ImageBrush)PaintCanvas.Background;
Image a = (Image)picture;
System.Drawing.Bitmap btmap = (System.Drawing.Bitmap)picture;

我在StackOverFlow和谷歌上找到的所有东西都从图像转换为imageBrush

提前谢谢你

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-10-04 12:19:42

代码语言:javascript
复制
ImageBrush b =  (ImageBrush)PaintCanvas.Background;
BitmapSource src = (BitmapSource)b.ImageSource;

string path = @"g:\myimg-name.jpg";
using (FileStream fs1 = new FileStream(path, FileMode.OpenOrCreate))
{
    BitmapFrame frame = BitmapFrame.Create(src);

    JpegBitmapEncoder enc = new JpegBitmapEncoder();
    enc.Frames.Add(frame);
    enc.Save(fs1);
}
票数 2
EN

Stack Overflow用户

发布于 2016-10-04 12:05:33

试试下面的代码。可能对你有帮助。

代码语言:javascript
复制
if (((Grid)sender).Children.Count > 0)
        {
            gridBackground = (ImageBrush)(((Grid)sender).Background);
            System.Windows.Controls.Image gridBackImage = new System.Windows.Controls.Image();
            gridBackImage.Source = gridBackground.ImageSource;

            ImageCar.Source = gridBackImage.Source;
        }
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39851568

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档