RTF 图片
来源:互联网 发布:产品设计工作室知乎 编辑:程序博客网 时间:2024/05/24 07:04
存储rtf有时候需要实现RTF文字和图片分离。rtf文字可以通过RICHTEXTBOX.TEXT而获取。但是图片的话需要分离。
实现原理:
原来存储在RTF格式中的图片数据(图片数据位置请参阅RTF格式研究这篇文章)是把原图片的16进制数据直接变成ascii字符数据嵌入RTF文件中的
也就是:
&H432D(一共16bit数据长度)变成了"432D"(一共32bit数据)字符串存储在文件中,我们要做的是把字符串再转回16进制数
========================================================
只要定义一个字节数组B() as byte
每两个字符从RTF图片数据中读出//2个字符16bit大小
通过val等函数转换成数值//十进制,因为16进制在vb比较难操作,所以选择数值相同的十进制,存进去变量以后的2进制是一样的
存储在B(i)中//8bit(把2个字符压成一个字符拉....)
然后用vb的二进制方式binary
写入整个B()数组到文件
然后通过任何图片程序就可以读取拉
分离代码如下:
string cmd = "select QUESTION_CONTENT from TB_QUESTION where QUESTION_ID='TK11042900284'";
tempStr = SQLDAL.OracleHelper.GetSingle(cmd);
//数据库读出的RTF字符串。
string _RtfText = tempStr;
IList<string> _ImageList = new List<string>();
while (true)
{
int _Index = _RtfText.IndexOf("pichgoal");
if (_Index == -1) break;
_RtfText = _RtfText.Remove(0, _Index + 8);
_Index = _RtfText.IndexOf("/r/n");
_RtfText = _RtfText.Remove(0, _Index);
_Index = _RtfText.IndexOf("}");
_ImageList.Add(_RtfText.Substring(0, _Index).Replace("/r/n", ""));
_RtfText = _RtfText.Remove(0, _Index);
}
Byte[] buffer;
buffer = null;
for (int i = 0; i != _ImageList.Count; i++)
{
// System.IO.FileStream _File = new FileStream(System.Windows.Forms.Application.StartupPath + "//" + i.ToString() + ".dat", System.IO.FileMode.Create);
int _Count = _ImageList[i].Length / 2;
buffer = new Byte[_ImageList[i].Length/2];
for (int z = 0; z != _Count; z++)
{
string _TempText = _ImageList[i][z * 2].ToString() + _ImageList[i][(z * 2) + 1].ToString();
// _File.WriteByte(Convert.ToByte(_TempText, 16));
buffer[z] = Convert.ToByte(_TempText, 16);
}
// _File.Close();
}
MemoryStream ms = new MemoryStream(buffer);
Image _a = Image.FromStream(ms);
// Bitmap _a = new Bitmap(Application.StartupPath + "//" + "0.dat");
if (_a != null)
{
pictureBox1.Image = _a;
}
else
{
MessageBox.Show("as");
}
- RTF 图片
- RTF 加入图片
- RTF 插入图片2
- RTF文档导成图片
- 获取RTF格式字符串中的二进制图片字符串列表-RTF研究系列
- 在RTF格式中提取图片并保存成文件
- 关于RTF提取图片和文字的方法。
- 关于RTF提取图片和文字的方法 (转)
- 解决WINFORM下面rtf不能在IE上面显示图片的问题
- RTF文件格式
- RTF文件
- RTF Builder
- RTF Format
- rtf文件格式
- RTF 总结
- RTF文件格式
- rtf文件格式
- elasticsearch-rtf
- 复制学习 Linux FD_SET及select()详解
- java常用设计模式
- error LNK1257: code generation failed
- 我的大论文思路记录
- HOJ 1211 全源最短路
- RTF 图片
- 实例分析数据库死锁的产生
- 值传递、地址传递,引用传递
- 13-4-4 如何将图片和文字绑定在一起出现在Gridview中
- CPU与编译器概论(读书笔记)
- matlab文件操作
- JDK和Tomcat环境变量配置
- jsp登陆系统
- google maps v2遇到的问题