将Image控件中的图片转为String存储问题(50分)

  • 主题发起人 主题发起人 jettop
  • 开始时间 开始时间
J

jettop

Unregistered / Unconfirmed
GUEST, unregistred user!
已知,在delphi 的DFM 文件中,Image控件的图片被转换为十六进制字符存储,
问:如何写一个函数将Image控件中的图片转换为十六进制字符?
又如何将存储的十六进制字符串,显示为图片?
注: 不想用ComponentToString之类的土方法处理
 
用Move移动内存方法来处理好了
 
:haizhu1983 兄,你的回答是否太抽象了?
 
恩,使用流吧~~(乱说的,不过你可以试下)
 
TImage.Picture.Graphic.LoadFromStream/SaveToStream
StreamToHex/HexToString(HexToStream: TStringStream.Create(String)):
http://www.delphibbs.com/keylife/iblog_show.asp?xid=22638
 
dreamisx:感谢支持!
问题有二,
1. StreamToHex生成的字串与DFM生成的不相同(同一图片)
2. 又如何将Hex返过来成为图片的流呢?
 
1.不相同,我想是因为编码方法不一样(没仔细研究过DFM的编码);
2.
var
AStream: TStringStream;
bmp: TBitmap;
begin
AStream := TStringStream.Create(HexToString(读入的HEX串));
try
bmp := TBitmap.Create;
try
bmp.LoadFromStream(AStream);
Image2.Picture.Assign(bmp); //必须先知道图片类型,以便用对应的图像类进行处理,如果是JPG,则应用TJpegImage代替TBitmap
finally
bmp.Free;
end;
finally
AStream.Free;
end;
 
搞定!
不想给你分都不行了
 

Similar threads

D
回复
0
查看
793
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
827
DelphiTeacher的专栏
D
后退
顶部