如何显示和取出stream变量中BMP、JPG的图象? 一个stream变量包含BMP或者JPG图象内容,怎样才能将其显示在Timage图片控件中,最后又怎样将Timage控件的图象内容存到一个Tstream变量?注意:这个stream内容事先并不能确定为BMP还是JPG!我是想做成一个activeX Form,以供其它软件使用,就卡在此处,请各位高手指教!给出成功的方法的,肯定给分! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 try先按bmp处理,如果except 再按jpeg处理。var strm:TMemoryStream; jpg:TJpegImage;begin if OpenDialog1.Execute then begin strm:=TMemoryStream.Create; try strm.LoadFromFile(OpenDialog1.FileName); try Image1.Picture.Bitmap.LoadFromStream(strm); except try strm.Position:=0; jpg:=TJPEGImage.Create; jpg.LoadFromStream(strm); Image1.Picture.Assign(jpg); except end; end; finally FreeAndNil(strm); FreeAndNil(Jpg); end; end;end;最好有个变量保存当前stream是bmp还是jpg 哦,错了一下var strm:TMemoryStream; jpg:TJpegImage;begin if OpenDialog1.Execute then begin strm:=TMemoryStream.Create; try strm.LoadFromFile(OpenDialog1.FileName); try Image1.Picture.Bitmap.LoadFromStream(strm); except try strm.Position:=0; jpg:=TJPEGImage.Create; jpg.LoadFromStream(strm); Image1.Picture.Assign(jpg); finally FreeAndNil(Jpg);//free改在这里 end; end; finally FreeAndNil(strm); end; end;end; procedure TeditionForm.Button1Click(Sender: TObject);var myjpg:Tjpegimage; mystream:Tmemorystream;begin try if opendialog1.Execute then begin myjpg:=Tjpegimage.Create; try image1.Picture.LoadFromFile(opendialog1.FileName); myjpg.Assign(image1.Picture.Graphic); mystream:=Tmemorystream.Create; myjpg.SaveToStream(mystream); mystream.Position:=0; datform.Qedition.Close; datform.Qedition.SQL.Clear; datform.Qedition.SQL.Add('select * from edition where e_id='+quotedstr(inttostr(e_id))+' order by e_id'); datform.Qedition.Open; datform.Qedition.Edit; tblobfield(datform.Qedition.FieldByName('e_img')).LoadFromStream(mystream); datform.Qedition.Post; showmessage('录入成功!'); myjpg.Free; except myjpg.Free; showmessage('录入失败!'); exit; end; end; except myjpg.Free; showmessage('图相录入失败!'); exit; end;end; procedure TeditionForm.DBGrid1CellClick(Column: TColumn);var myjpg:Tjpegimage; mystream:Tmemorystream;begin try label55.Caption:='你现在查看的款号是:'+datform.Qedition.FieldValues['e_office']; myjpg:=Tjpegimage.Create; mystream:=Tmemorystream.Create; tblobfield(datform.Qedition.FieldByName('e_img')).SaveToStream(mystream); mystream.Position:=0; myjpg.LoadFromStream(mystream); image2.Picture.Assign(myjpg); clipboard.Assign(myjpg); myjpg.Free; except showmessage('图相出错'); myjpg.Free; exit; end; Dlephi 7 子窗体与工具栏 FileStream错在哪里? 请帮忙 如何向文本文件的末尾添加文本? 如何在delphi中修改DBE中的DataBase Name?? 我的代码哪里错了,高手快来! 如何实现数据库的事务操作,对记录进行编辑?高分相送。 请问怎样调用其它单元里的函数啊? delphi7中如何利用qreport实现的报表中单页小结 动态报表问题,重新转移。 IDTCPSever跟IDTCPClient连接后能得到IDTCPClient的IP吗? 【进入编程这行一年多了,感觉自己也算是入门了,高兴~~】
var strm:TMemoryStream;
jpg:TJpegImage;
begin
if OpenDialog1.Execute then
begin
strm:=TMemoryStream.Create;
try
strm.LoadFromFile(OpenDialog1.FileName);
try
Image1.Picture.Bitmap.LoadFromStream(strm);
except
try
strm.Position:=0;
jpg:=TJPEGImage.Create;
jpg.LoadFromStream(strm);
Image1.Picture.Assign(jpg);
except
end;
end;
finally
FreeAndNil(strm);
FreeAndNil(Jpg);
end;
end;
end;
最好有个变量保存当前stream是bmp还是jpg
var strm:TMemoryStream;
jpg:TJpegImage;
begin
if OpenDialog1.Execute then
begin
strm:=TMemoryStream.Create;
try
strm.LoadFromFile(OpenDialog1.FileName);
try
Image1.Picture.Bitmap.LoadFromStream(strm);
except
try
strm.Position:=0;
jpg:=TJPEGImage.Create;
jpg.LoadFromStream(strm);
Image1.Picture.Assign(jpg);
finally
FreeAndNil(Jpg);//free改在这里
end;
end;
finally
FreeAndNil(strm);
end;
end;
end;
var
myjpg:Tjpegimage;
mystream:Tmemorystream;
begin
try
if opendialog1.Execute then
begin
myjpg:=Tjpegimage.Create;
try
image1.Picture.LoadFromFile(opendialog1.FileName);
myjpg.Assign(image1.Picture.Graphic);
mystream:=Tmemorystream.Create;
myjpg.SaveToStream(mystream);
mystream.Position:=0; datform.Qedition.Close;
datform.Qedition.SQL.Clear;
datform.Qedition.SQL.Add('select * from edition where e_id='+quotedstr(inttostr(e_id))+' order by e_id');
datform.Qedition.Open;
datform.Qedition.Edit; tblobfield(datform.Qedition.FieldByName('e_img')).LoadFromStream(mystream);
datform.Qedition.Post; showmessage('录入成功!');
myjpg.Free;
except
myjpg.Free;
showmessage('录入失败!');
exit;
end;
end;
except
myjpg.Free;
showmessage('图相录入失败!');
exit;
end;
end;
var
myjpg:Tjpegimage;
mystream:Tmemorystream;
begin
try
label55.Caption:='你现在查看的款号是:'+datform.Qedition.FieldValues['e_office'];
myjpg:=Tjpegimage.Create;
mystream:=Tmemorystream.Create; tblobfield(datform.Qedition.FieldByName('e_img')).SaveToStream(mystream);
mystream.Position:=0;
myjpg.LoadFromStream(mystream);
image2.Picture.Assign(myjpg); clipboard.Assign(myjpg);
myjpg.Free;
except
showmessage('图相出错');
myjpg.Free;
exit;
end;