总是在从DBF文件中读出JPEG图片时出问题,JPEG ERROR #50?!我可是用TBLOBFIELD.LOADFROMFILE()的方法直接保存JPEG图片的.//读取已保存的JPEG图片
procedure TForm1.DataSource1DataChange(Sender: TObject; Field: TField);
var
tmp: tblobstream;tmpjpg: tjpegimage;
begin
if not tblobfield(table1.fieldbyname('photo')).IsNull then
begin
tmp:=TBlobStream.Create(TBlobField(Table1.FieldbyName('photo')), bmRead);
tmpjpg:= TJPEGImage.Create;
tmp.Position:=0;
//下面这句出错 JPEG ERROR #50
tmpjpg.LoadFromStream(tmp);
Image1.Picture.Assign(tmpjpg);
tmp.free;
tmpjpg.free;
end
else
image1.picture:=nil;end;//查找JPEG图片并用TIMAGE显示
procedure TForm1.Button1Click(Sender: TObject);
begin
if openpicturedialog1.Execute then
begin
image1.Picture.LoadFromFile(openpicturedialog1.filename);
button2.enabled:=true;
end;
end;//保存JPEG图片
procedure TForm1.Button2Click(Sender: TObject);
var
tmp: tmemorystream;
begin
tmp:=tmemorystream.create;
tmp.LoadFromFile(openpicturedialog1.filename);
tmp.position:=0;
table1.Edit;
tblobfield(table1.FieldByName('photo')).LoadFromstream(tmp);
tmp.free;
end;
procedure TForm1.DataSource1DataChange(Sender: TObject; Field: TField);
var
tmp: tblobstream;tmpjpg: tjpegimage;
begin
if not tblobfield(table1.fieldbyname('photo')).IsNull then
begin
tmp:=TBlobStream.Create(TBlobField(Table1.FieldbyName('photo')), bmRead);
tmpjpg:= TJPEGImage.Create;
tmp.Position:=0;
//下面这句出错 JPEG ERROR #50
tmpjpg.LoadFromStream(tmp);
Image1.Picture.Assign(tmpjpg);
tmp.free;
tmpjpg.free;
end
else
image1.picture:=nil;end;//查找JPEG图片并用TIMAGE显示
procedure TForm1.Button1Click(Sender: TObject);
begin
if openpicturedialog1.Execute then
begin
image1.Picture.LoadFromFile(openpicturedialog1.filename);
button2.enabled:=true;
end;
end;//保存JPEG图片
procedure TForm1.Button2Click(Sender: TObject);
var
tmp: tmemorystream;
begin
tmp:=tmemorystream.create;
tmp.LoadFromFile(openpicturedialog1.filename);
tmp.position:=0;
table1.Edit;
tblobfield(table1.FieldByName('photo')).LoadFromstream(tmp);
tmp.free;
end;
解决方案 »
- 新手交流贴,给firebird.FireBird的dialect1和dialect3的一些事情
- 对线程方面搞的好的朋友请进。。
- 如何用代码码方式为BitBtn指定图标?
- 字符串的选择!
- 为什么OpenFileDialog->Execute()弹不出对话框呢?
- 关于Easytable的求助
- 关于一些小问题,请大侠指点!
- 怎么Pchar不能Dispose呀?
- 我正在用DELPHI做一个FTP软件,我想自动选择文件传输类型(ASCII 或 BINARY),请问该怎么做?
- 我该学eelph吗?
- 打印问题?选A3纸时,内容标题在预览前是居中的,但预览后就跑到后面去了。(在线等待!)
- 提几个菜鸟问题,在线等待
tmp:=TBlobStream.Create(TBlobField(Table1.FieldbyName('photo')), bmRead);
改一下;
temp := TStringStream.Create('');
TBlobField(TABLE1.FieldByName('PHOTO')).SaveToStream(temp);
tblobfield(table1.FieldByName('photo')).LoadFromstream(tmp);
table1.post;////////没有保存
tmp.free;
end;
try
tmp2.CopyFrom(tmp, tmp.Size);
Table1.Post;
finally
tmp2.Free;
end;