关于图片显示的一个小问题! ( 积分: 10 )

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

javesun

Unregistered / Unconfirmed
GUEST, unregistred user!
procedure TForm1.Button1Click(Sender: TObject);
var
MyTmpJPEG: TJpegImage;
MyTmpBmp: TBitMap;
MyExt: String;
begin
MyTmpJPEG:= TJpegImage.Create;
MyTmpBmp:= TBitMap.Create;
MyExt:= UpperCase(ExtractFileExt(OpenDialog1.FileName));
if OpenDialog1.Execute then
begin
if (MyExt= '.JPEG') or (MyExt='.JPG') then
begin
MyTmpJPEG.LoadFromFile(OpenDialog1.FileName);
MyTmpBmp.Assign(MyTmpJPEG);
Image1.Picture.Assign(MyTmpBmp);
end
else
if MyExt= '.BMP' then
begin
MyTmpBmp.LoadFromFile(OpenDialog1.FileName);
Image1.Picture.Assign(MyTmpBmp);
end;
end
else
Exit;
MyTmpJPEG.Free;
MyTmpBmp.Free;
end;

请大家帮我看看这个代码,为什么开始的时候要导入两次才能显示图片???
还有一个:MyBmp:= TBitMap.Create,MyBmp是不是不用Free啊??
谢谢!
 
procedure TForm1.Button1Click(Sender: TObject);
var
MyTmpJPEG: TJpegImage;
MyTmpBmp: TBitMap;
MyExt: String;
begin
MyTmpJPEG:= TJpegImage.Create;
MyTmpBmp:= TBitMap.Create;
MyExt:= UpperCase(ExtractFileExt(OpenDialog1.FileName));
if OpenDialog1.Execute then
begin
if (MyExt= '.JPEG') or (MyExt='.JPG') then
begin
MyTmpJPEG.LoadFromFile(OpenDialog1.FileName);
MyTmpBmp.Assign(MyTmpJPEG);
Image1.Picture.Assign(MyTmpBmp);
end
else
if MyExt= '.BMP' then
begin
MyTmpBmp.LoadFromFile(OpenDialog1.FileName);
Image1.Picture.Assign(MyTmpBmp);
end;
end
else
Exit;
MyTmpJPEG.Free;
MyTmpBmp.Free;
end;

请大家帮我看看这个代码,为什么开始的时候要导入两次才能显示图片???
还有一个:MyBmp:= TBitMap.Create,MyBmp是不是不用Free啊??
谢谢!
 
把jpg转为bmp再在image中显示
最后一定要释放mybmp
 
如果要是不转呢?也就是说本来就是一个BMP文件,不用JPEG。。。
 
应该先
OpenDialog1.Execute 再
MyExt:= UpperCase(ExtractFileExt(OpenDialog1.FileName));吧
 
chenybin,谢谢!
 
to nhxz:
好像可以不用释放,把最后的MyTmpBmp.Free;去掉也行,编译运行都没有错误。
 

Similar threads

后退
顶部