正在从RichTextBox中提取图像
本文关键字:提取 图像 RichTextBox | 更新日期: 2023-09-27 17:59:33
我有一个应用程序,用户可以在其中将图像插入RichTextBox。我希望能够用一些令牌替换RTF中的所有图像,并将图像存储在单独的文件中。稍后我将把图像重新注入RTF。
我已经设法使插入工作,但最终不得不通过剪贴板粘贴它们(非常像在C#中将图像插入RTF文档)。
现在的问题是如何提取图像。
-
如何用程序在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);
-
有没有一个更优雅的解决方案不需要经过剪贴板?
谢谢你的帮助!
图片如下所示:
{'*'shppict {'pict 'emfblip ..... }}{'nonshppict {'pict ....}}
甚至
{'pict ...}
您可以检查包含图片的文档的rtf,并编写一个正则表达式来提取图像(用标记替换它们)。另一个regex替换可以恢复图像。
您可以使用此RTF转换器,使用类RtfVisualImageAdapter提取RichTextBox的图像。
查看示例:
- RichTextBox:RtfWinForms(Windows窗体),RtfWindows
- 图像处理:Rtf2Html