【问题标题】:Extracting images from RichTextBox从 RichTextBox 中提取图像
【发布时间】:2013-10-13 09:24:23
【问题描述】:

我有一个应用程序,用户可以在其中将图像插入 RichTextBox。我希望能够用一些令牌替换 RTF 中的所有图像并将图像存储在单独的文件中。稍后我会将图像重新注入 RTF。

我已经设法让插入工作,但最终还是通过剪贴板粘贴它们(非常像Insert an image into RTF document in C#)。

现在的问题是如何提取图像。

  1. 如何以编程方式选择 RichTextBox 中的图像?

  2. 我必须通过剪贴板返回吗?比如:

    IDataObject data = Clipboard.GetDataObject();
    Clipboard.Clear();
    
    _RichTextBox.Select(/* The image */);
    _RichTextBox.Copy();
    
    Image img = Clipboard.GetImage();
    img.Save("myImage.png", System.Drawing.Imaging.ImageFormat.Png);
    
    Clipboard.Clear();
    Clipboard.SetDataObject(data);
    
  3. 有没有更优雅的解决方案,不需要通过剪贴板?

感谢您的帮助!

【问题讨论】:

  • this article 是否提供任何有意义的见解?我不知道这个问题的答案,但我自己对答案很感兴趣。 =)

标签: c# image image-processing richtextbox rtf


【解决方案1】:

图片应该是这样的:

{\*\shppict {\pict \emfblip ..... }}{\nonshppict {\pict ....}}

甚至

{\pict ...}

您可以检查包含图片的文档的 rtf 并编写正则表达式来提取图像(用标记替换它们)。 另一个正则表达式替换可以恢复图像。

【讨论】:

    【解决方案2】:

    您可以使用这个RTF Converter 来提取使用类 RtfVisualImageAdapter 的 RichTextBox 的图像。

    查看示例:

    • RichTextBox:RtfWinForms(Windows 窗体)、RtfWindows(WPF)
    • 图像处理:Rtf2Html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多