【问题标题】:Draw on image control in WPF在 WPF 中绘制图像控件
【发布时间】:2011-03-04 22:17:54
【问题描述】:

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

【问题讨论】:

    标签: c# wpf


    【解决方案1】:

    您可以通过将 InkCanvas 添加到您的页面、将您的图像添加为 InkCanvas 的背景图像并添加保存功能来做到这一点。

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

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

    newImagePath 是新文件的路径; inkImageCanvas 是您的 InkCanvas 控件。

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

    【讨论】:

      猜你喜欢
      • 2015-06-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多