jpeg帮助(50分)

  • 主题发起人 主题发起人 clark
  • 开始时间 开始时间
C

clark

Unregistered / Unconfirmed
GUEST, unregistred user!
if UpperCase(ExtractFileExt(OpenDialog1.FileName))='.JPG' then
begin
JpegOpened:=TJPEGImage.Create;
JPEGOPened.LoadfromFile(OpenDialog1.FileName);
Image1.Height:=JPEGOpened.Height;
Image1.Width:=JPEGOpened.Width;
image1.Canvas.Draw(0,0,JPEGOpened);
Image1.Top:=0;
Image1.Left:=0;
image1.Visible:=true;
imageheight:=JPEGOpened.Height;
imagewidth:=JPEGOpened.Width;
JPEGOpened.Free;
SaveASDat1.Enabled:=true;
Save1.Enabled:=False;
Caption:=Caption+':'+inttostr(imagewidth)+'*'+inttostr(imageheight);
end;
这是程序的一部分,image1(TImage部件)的尺寸往往不正确!why?help please
 
我试了,图像尺寸应该没问题。
procedure TForm1.Button1Click(Sender: TObject);
var
JpegOpened:TJPEGImage;
begin
JpegOpened:=TJPEGImage.Create;
JPEGOPened.LoadfromFile('c:/temp.jpg');
Image1.Height:=JPEGOpened.Height;
Image1.Width:=JPEGOpened.Width;
image1.Canvas.Draw(0,0,JPEGOpened);
image1.Visible:=true;
Edit1.Text:=IntToStr(JPEGOpened.Height);
Edit2.Text:=IntToStr(JPEGOpened.Width);
JPEGOpened.Free;
end;
 
好象是没有什么问题,不知道你的“尺寸不对”是指什么?
 
您的Image1.Align可不能设为alClient的哦。
 
应该用:
Image1.picture.bitmap.height:=JPEGOpend.height;
Image1.picture.bitmap.width:=JPEGOpend.width;
Image1.canvas.draw(0,0,JPEGOpend);
在使用 TImage 画图时, 应该记住设置 Image 的大小只是改变了 Image 在 Form 上
的显示大小, 并没有改变其图形的大小, 只有设置了 Image.Picture.Bitmap 的大小
后图像才能按你所给出的大小初始化
 
当我打开第二或后几幅时,往往发生后面的图象只显示出第一幅图的大小,我估计
是image1的尺寸设置的不对,但是也看不出原因。
在huiZhang的提示下我明白了应该为:
image1.height1:=JpegOpened.height;
image1.width1:=JpegOpened.width;
image1.picture.bitmap.height:=jpegopened.height;
image1.picture.bitmap.width:=jpegopened.width;
image1.canvas.draw(0,0,jpegopened);
谢谢大家
 
将huizhang兄说的两条代码加上不就行了:
Image1.Height:=JPEGOpened.Height;
Image1.Width:=JPEGOpened.Width;
Image1.picture.bitmap.Height:=JPEGOpened.Height;
Image1.picture.bitmap.Width:=JPEGOpened.Width;
image1.Canvas.Draw(0,0,JPEGOpened);
 
haha,Clark好快!
 

Similar threads

I
回复
0
查看
621
import
I
I
回复
0
查看
499
import
I
I
回复
0
查看
694
import
I
I
回复
0
查看
2K
import
I
后退
顶部