窗体上两个image控件,如何实现image2上显示image1图像的拼接阿,  lWidth := image1.Picture.Width;
  Image2.Canvas.Draw(0,0,image1.Picture.Graphic);
  Image2.Canvas.Draw(lWidth,0,image1.Picture.Graphic);
  Image2.Canvas.Draw(lWidth*2,0,image1.Picture.Graphic);
  Image2.Canvas.Draw(lWidth*3,0,image1.Picture.Graphic);
  Image2.Canvas.Draw(lWidth*4,0,image1.Picture.Graphic);
  Image2.Canvas.Draw(lWidth*5,0,image1.Picture.Graphic);  Image2.Picture.SaveToFile('c:\test.bmp');  由于窗体宽度限制,image2只显示了2个lWidth,就不显示了,'c:\test.bmp'文件同样如此,我想实现  'c:\test.bmp' 是5个image1的图像 谢谢!

解决方案 »

  1.   


      Image2.AutoSize := False;
      lWidth := image1.Picture.Width;
      Image2.Width := 5*lWidth;//设置image2的最终宽度
      Image2.Canvas.Draw(0,0,image1.Picture.Graphic);
      Image2.Canvas.Draw(lWidth,0,image1.Picture.Graphic);
      Image2.Canvas.Draw(lWidth*2,0,image1.Picture.Graphic);
      Image2.Canvas.Draw(lWidth*3,0,image1.Picture.Graphic);
      Image2.Canvas.Draw(lWidth*4,0,image1.Picture.Graphic);
      Image2.Canvas.Draw(lWidth*5,0,image1.Picture.Graphic);
      

  2.   

    你得image1图片多大,我试了画了10个,没问题,是不是我的图片小
      

  3.   

    Image2.AutoSize := False;
      lWidth := image1.Picture.Width;
      lWidth1:=image2.Width;
      Image2.Width := 5*lWidth;//设置image2的最终宽度
      Image2.Canvas.Draw(0,0,image1.Picture.Graphic);
      Image2.Canvas.Draw(lWidth,0,image1.Picture.Graphic);
      Image2.Canvas.Draw(lWidth*2,0,image1.Picture.Graphic);
      Image2.Canvas.Draw(lWidth*3,0,image1.Picture.Graphic);
      Image2.Canvas.Draw(lWidth*4,0,image1.Picture.Graphic);
      Image2.Canvas.Draw(lWidth*5,0,image1.Picture.Graphic);
      image2.Width:=lWidth1;
      image2.Stretch:=true;
      Image2.Picture.SaveToFile('c:\test.bmp');
      

  4.   

    那你看看 'c:\test.bmp' 这个图片的宽度 超过显示器的像素了吗?我的机器是1280*1024 我无论怎么改,图片只有两个半,而'c:\test.bmp'的宽度就是1284 还多出来4个像素!
      

  5.   

    画个图还能有什么问题画图应该用 TPaintBox.