从 RichTextBox 中提取图像
我有一个应用程序,用户可以将图像插入到 RichTextBox 中。我希望能够用一些令牌替换 RTF 中的所有图像,并将图像存储在单独的文件中。稍后我会将图像重新注入到 RTF 中。
我已经设法使插入工作,但最终不得不通过剪贴板粘贴它们(非常像 在 C# 中将图像插入 RTF 文档)。
现在的问题是如何提取图像。
如何以编程方式在 RichTextBox 中选择图像?
我必须返回剪贴板吗?像这样的东西:
IDataObject 数据 = Clipboard.GetDataObject(); 剪贴板.清除(); _RichTextBox.Select(/* 图像 */); _RichTextBox.Copy(); 图像img = Clipboard.GetImage(); img.Save("myImage.png", System.Drawing.Imaging.ImageFormat.Png); 剪贴板.清除(); 剪贴板.SetDataObject(数据);
是否有更优雅的解决方案,不需要通过剪贴板?
感谢您的帮助!
I have an application where users may insert images into a RichTextBox. I'd like to be able to replace all the images in the RTF with some token and store the images in separate files. I'll inject the images back into the RTF later.
I've managed to get the insertion working but ended up resorting to pasting them via the Clipboard (very like Insert an image into RTF document in C#).
The trouble now is how to extract the images.
How do I programatically select an image in a RichTextBox?
Do I have to go back through the clipboard? Something like:
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);
Is there a more elegant solution that doesn't require going through the clipboard?
Thanks for your help!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
图片看起来像这样:
或者甚至
您可以检查包含图片的文档的 rtf 并编写正则表达式来提取图像(用标记替换它们)。
另一个正则表达式替换可以恢复图像。
A picture would look like this:
or even
You can check the rtf of the document containing the picture and write a regular expression to extract the images (replacing them with tokens).
Another regex replace can restore the images.
您可以使用此 RTF 转换器 使用类 < 来提取 RichTextBox 的图像强>RtfVisualImageAdapter。
查看示例:
You can use this RTF Converter to extract the images of a RichTextBox using the class RtfVisualImageAdapter.
Check out the examples: