在WPF中绘制图像控件

时间:2011-03-04 22:17:54

标签: c# wpf

我必须创建应用程序,它可以加载一些图像,应用一些过滤器,绘制几行并保存它。我必须使用WPF来做到这一点。如何在WPF中绘制图像控件?或者另一个控制更好吗?

1 个答案:

答案 0 :(得分:4)

您可以通过向页面添加InkCanvas,将图像添加为InkCanvas的背景图像,以及添加保存功能来实现此目的。

  1. 将InkCanvas添加到WPF表单:
    1. 打开工具箱(在“视图”菜单上,单击“工具箱”)
    2. 右键单击“工具箱”,然后单击“选择项目”(选择“工具箱项”对话框打开)
    3. 在“选择工具箱项”对话框的“WPF组件”选项卡上,向下滚动到“InkCanvas”并选中它,以便在复选框中显示一个复选框。
    4. 单击“确定”将InkCanvas控件添加到“工具箱”。
    5. 将InkCanvas控件从“工具箱”拖动到设计图面。
  2. 将您的图片添加为InkCanvas的背景。您可以在Background或XAML
  3. 下的属性窗口中执行此操作
  4. 在表单中添加“保存”按钮,然后使用以下代码进行保存:

    string newImagePath = "your file path";
    var ms = new MemoryStream();             
    
    using (FileStream fs = new FileStream(newImagePath , FileMode.Create)
    {
        var rtb = new RenderTargetBitmap((int)inkImageCanvas.Width, (int)inkImageCanvas.Height, 96d, 96d, PixelFormats.Default);             
        rtb.Render(inkImageCanvas);             
        JpegBitmapEncoder encoder = new JpegBitmapEncoder();             
        encoder.Frames.Add(BitmapFrame.Create(rtb));              
        encoder.Save(fs);             
    }
    
  5. newImagePath是新文件的路径; inkImageCanvas是您的InkCanvas控件。

    这会将您的inkCanval内容保存为jpg文件。