Rtf格式的图片添加名称

wsnby517 2013-07-05 06:14:17
各位大神.
我在网上找到了能让RichTextBox显示GIF图片的方法,查看代码是把图片变成了rtf格式.我在想能不能在图片的rtf格式后面跟一个他的名字.而且能够获取到.那就爽歪歪了~

/// <summary>
/// 添加一个文件资源到RTF数据
/// </summary>
/// <param name="p_FileFullPath">文件路径</param>
public void AddFile(string p_FileFullPath)
{
byte[] _FileBytes = File.ReadAllBytes(p_FileFullPath);
Image _Image = Image.FromStream(new MemoryStream(_FileBytes));
string _Guid = BitConverter.ToString(Guid.NewGuid().ToByteArray()).Replace("-", "");
StringBuilder _RtfText = new StringBuilder(@"{\rtf1\ansi\ansicpg936\deff0\deflang1033\deflangfe2052{\fonttbl{\f0\fnil\fcharset134 \'cb\'ce\'cc\'e5;}}\uc1\pard\lang2052\f0\fs18{\object\objemb{\*\objclass Paint.Picture}");
int _Width = _Image.Width * 15;
int _Height = _Image.Height * 15;
_RtfText.Append(@"\objw" + _Width.ToString() + @"\objh" + _Height.ToString());
_RtfText.AppendLine(@"{\*\objdata");
_RtfText.AppendLine(@"010500000200000007000000504272757368000000000000000000" + BitConverter.ToString(BitConverter.GetBytes(_FileBytes.Length + 20)).Replace("-", ""));
_RtfText.Append("7A676B65" + _Guid); //标记
_RtfText.AppendLine(BitConverter.ToString(_FileBytes).Replace("-", ""));
_RtfText.AppendLine(@"0105000000000000}{\result{\pict\wmetafile0}}}}");
base.SelectedRtf = _RtfText.ToString();
}

以上是展示GIF图片功能的代码
我现在正在做个发送信息的功能,能发图片和蚊子,就疼的就是图片的获取啦,如果我提前获取了图片的位置和名称万一用户修改图片,删除图片一切就变了,所以我在想,在用户发送的时候就获取图片的名称和位置,现在就是图片的名称无法获取了,如果能在图片的rtf格式中获取到就是最完美的结局了.
...全文
129 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
wsnby517 2013-08-19
  • 打赏
  • 举报
回复
自己结贴不解释!在插入图片的时候把图片名字和Guid整合下。让32位不重复的Guid最前面的几位为图片的名字!

110,499

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧