我想在一个固定了width与height的image控件上显示jpg格式图片,但图片的分辨率超过了image的长或宽,不能完全显示,只显示了一部分,不知道如何按比例把这个图片完全显示在固定了的长宽的image里。好像用strech设置成true后,要图片变形,一个初学者,请高手不吝赐教,能不能详细一点

解决方案 »

  1.   

    自己先判断一下图片的实际长宽,然后把Image缩放到适合的尺寸在显示图片
      

  2.   

    可以用 zzlingaaa(小舟) 的方法
    image1.Stretch:=false;
    先加载图片然后获取jpg的实际宽度高度然后把Image缩放到适合的尺寸在显示图片
    image1.Width:=x;
    image1.Height:=y;
    image1.Stretch:=tru7e;也可以用imageenview
    imageenview1.Zoom:=50;//缩放图形显示比例
      

  3.   

    Panel1为Image1的Parent          Image1.Picture.LoadFromFile('c:\a.bmp');
              Image1.AutoSize:=True;
              Image1.Stretch:=True;
              Image1.AutoSize:=False;          if (Image1.Width/Panel1.Width)>(Image1.Height/Panel1.Height) then
                begin
                  i:=Image1.Width;
                  Image1.Width:=Panel1.Width;
                  Image1.Height:=ROUND(Image1.Height*Image1.Width/i);
                  Image1.Left:=0;
                  Image1.Top:=(Panel1.Height-image1.Height) div 2;
                end
              else
                begin
                  i:=Image1.Height;
                  Image1.Height:=Panel1.Height;
                  image1.Width:=ROUND(image1.Height*image1.Width/i);
                  Image1.Left:=(Panel1.Width-image1.Width) div 2;
                  Image1.Top:=0;
                end;
      

  4.   

    那就用imageenview控件
    imageenview1.io.loadfromjpeg(filename);
    imageenview1.Zoom:=50;//缩放图形显示比例
      

  5.   

    Image.AutoSize:=False;
    Image.Stretch:=False;
    image.Propotional:=True;  //自动按比例显示