以二进制方式读取图片保存到string
2015-06-24 16:38
633 查看
procedure TForm1.BitBtn1Click(Sender: TObject);
var
StringStream : TStringStream;
FSize : integer;
FileData : string;
i : integer;
DataStr : string;
msStream: TMemoryStream;
begin
msStream:= TMemoryStream.Create;
self.img1.Picture.Graphic.SaveToStream(msStream);
msStream.Position:=0;
StringStream := TStringStream.Create(EmptyStr);
fsize:=msStream.Size;
StringStream.CopyFrom(msStream, FSize);
FileData := StringStream.DataString;
self.ProgressBar1.Max:=StringStream.Size;
DataStr := EmptyStr;
for i := 1 to Length(FileData) do
begin
DataStr := DataStr + InttoHex(Ord(FileData[i]), 2); // 十六进制显示
// DataStr:=DataStr+er(Ord(FileData[i]),7)// 二进制显示
self.ProgressBar1.Position:=i;
Application.ProcessMessages ;
end;
//Memo1.Text:=DataStr;
self.RichEdit1.Text:=DataStr;
Application.ProcessMessages ;
end;
var
StringStream : TStringStream;
FSize : integer;
FileData : string;
i : integer;
DataStr : string;
msStream: TMemoryStream;
begin
msStream:= TMemoryStream.Create;
self.img1.Picture.Graphic.SaveToStream(msStream);
msStream.Position:=0;
StringStream := TStringStream.Create(EmptyStr);
fsize:=msStream.Size;
StringStream.CopyFrom(msStream, FSize);
FileData := StringStream.DataString;
self.ProgressBar1.Max:=StringStream.Size;
DataStr := EmptyStr;
for i := 1 to Length(FileData) do
begin
DataStr := DataStr + InttoHex(Ord(FileData[i]), 2); // 十六进制显示
// DataStr:=DataStr+er(Ord(FileData[i]),7)// 二进制显示
self.ProgressBar1.Position:=i;
Application.ProcessMessages ;
end;
//Memo1.Text:=DataStr;
self.RichEdit1.Text:=DataStr;
Application.ProcessMessages ;
end;
相关文章推荐
- 用关联容器实现文本替换单词
- Evaluate Reverse Polish Notation
- 海量数据搜索的思考
- Android裁剪图片总结
- 初探Redis
- 51.比较字符串长短
- JDK动态代理实现原理
- 层次状态机的实现 c语言
- 海量数据搜索的思考
- android drawable( hdpi, ldpi, mdpi, xhdpi, xxhdpi)区别
- angular 路由
- angular 路由
- ios开发开源框架和类
- 飞思卡尔IMX6处理器的GPIO配置方式
- Android之ActivityManager
- OpenCV中Mat与IplImage和CvMat数据类型间的相互转换
- 设计模式的学习总结
- 发布单据
- [C#]async和await刨根问底
- Build subversion 1.8 with SSL on OS X Yosemite