ConvertBitmapToRTF(const Bitmap: TBitmap): string;
我使用了上面的函数将一个 BMP 图片转成 16 进字符串.再放入RTF中
RTF中的图片表示使用的是
{\rtf1 {\pict\dibitmap 图片的16进制字符串 }}
请问如何反操作.再将16进制字符串转成BMP图片
.
ConvertBitmapToRTF 具体如下:{将Bitmap转换为RTF格式}
function ConvertBitmapToRTF(const Bitmap: TBitmap): string;
var
bi, bb: string;
bis, bbs: Cardinal;
achar: string[2];
Buffer: string;
I: Integer;
type
PWord = ^Word;
begin
GetDIBSizes(Bitmap.Handle, bis, bbs);
SetLength(bi, bis);
SetLength(bb, bbs);
GetDIB(Bitmap.Handle, Bitmap.Palette, PChar(bi)^, PChar(bb)^);
SetLength(Buffer, (Length(bb) + Length(bi)) * 2);
i := 1;
for bis := 1 to Length(bi) do
begin
achar := IntToHex(Integer(bi[bis]), 2);
PWord(@Buffer[i])^ := PWord(@achar[1])^;
inc(i, 2);
end;
for bbs := 1 to Length(bb) do
begin
achar := IntToHex(Integer(bb[bbs]), 2);
PWord(@Buffer[i])^ := PWord(@achar[1])^;
inc(i, 2);
end;
Result := '{\rtf1 {\pict\dibitmap ' + Buffer + ' }}';
end;
我使用了上面的函数将一个 BMP 图片转成 16 进字符串.再放入RTF中
RTF中的图片表示使用的是
{\rtf1 {\pict\dibitmap 图片的16进制字符串 }}
请问如何反操作.再将16进制字符串转成BMP图片
.
ConvertBitmapToRTF 具体如下:{将Bitmap转换为RTF格式}
function ConvertBitmapToRTF(const Bitmap: TBitmap): string;
var
bi, bb: string;
bis, bbs: Cardinal;
achar: string[2];
Buffer: string;
I: Integer;
type
PWord = ^Word;
begin
GetDIBSizes(Bitmap.Handle, bis, bbs);
SetLength(bi, bis);
SetLength(bb, bbs);
GetDIB(Bitmap.Handle, Bitmap.Palette, PChar(bi)^, PChar(bb)^);
SetLength(Buffer, (Length(bb) + Length(bi)) * 2);
i := 1;
for bis := 1 to Length(bi) do
begin
achar := IntToHex(Integer(bi[bis]), 2);
PWord(@Buffer[i])^ := PWord(@achar[1])^;
inc(i, 2);
end;
for bbs := 1 to Length(bb) do
begin
achar := IntToHex(Integer(bb[bbs]), 2);
PWord(@Buffer[i])^ := PWord(@achar[1])^;
inc(i, 2);
end;
Result := '{\rtf1 {\pict\dibitmap ' + Buffer + ' }}';
end;
解决方案 »
- 图片合成
- dbgrideh拉动下拉滚动条时,选中的记录不跟着变化?
- 最近有几个生手需要我指导一下delphi,有没有培训材料,简单实用的??
- 报表的简单问题,请进来看看,
- 单挑高手:一个可变的字符串变量记录着类名(classname),怎么样根据这个符串的值创建所含信息的类实例??
- delphi 怎么作个没有框框的程序啊
- 请教ADO超时问题,在线等待
- 低手:“提问!” 高手:“回答!”
- 除了rx系列,ldm系列,ahm系列外,大家觉得还有哪些控件集值得推荐
- 有没有一个控件,它连接DBGrid,DBGrid的内容自动生成到报表
- 一个简单窗口监视程序的问题
- 怎样在已知目录下创建当前应用程序的快捷方式
关于图像到16进制相互转换的几个函数
http://www.52delphi.com/dispbbs.asp?boardid=21&Id=74