我有一个应用程序,用户可以将图像插入RichTextBox。我希望能够用一些令牌替换RTF中的所有图像,并将图像存储在单独的文件中。我稍后会将图像注入RTF。
我设法让插件工作但最终通过剪贴板粘贴它们(非常像Insert an image into RTF document in C#)。
现在的麻烦是如何提取图像。
如何以编程方式选择RichTextBox中的图像?
我是否必须通过剪贴板返回?类似的东西:
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);
是否有一个更优雅的解决方案,不需要通过剪贴板?
感谢您的帮助!
答案 0 :(得分:0)
您可以使用此RTF Converter使用 RtfVisualImageAdapter 类提取RichTextBox的图像。
查看示例:
答案 1 :(得分:0)
图片看起来像这样:
{\*\shppict {\pict \emfblip ..... }}{\nonshppict {\pict ....}}
甚至
{\pict ...}
您可以检查包含图片的文档的rtf并编写正则表达式来提取图像(用标记替换它们)。 另一个正则表达式替换可以恢复图像。