我在TImage上 居中显示一幅图片,当图片未撑满整个TImage时,需要将边上的部分显示为黑色。
求一解决方法,谢谢~

解决方案 »

  1.   

    【边上的部分】是指图片之外、image之内的部分?
    可以先image全部黑色,再在另一个隐藏的image加载图片,再copyrect到黑色的image
      

  2.   

      Image1.Canvas.Brush.Color := clBlack;
      Image1.Canvas.FillRect(Rect(0, 0, Image1.Width, Image1.Height));
      Image1.Canvas.Draw(0, 0, Bmp);
      

  3.   

    就是楼上的办法。
    但是需要调整。
    RectDest: TRect;
    RectDest.Left := ((Image1.Width - Photo.Width) div 2;
    RectDest.Top := (Image1.Heigth - Photo.Height) div 2;
    RectDest.Right := RectDest.Left + Photo.Width;
    RectDest.Bottom := RectDest.Top + Photo.Height;
    BrushCopy(RectDest, Photo, Rect(0, 0, Photo.Width, Photo.Height), RGB(254,254,254));
      

  4.   

    Image1.Canvas.BrushCopy(RectDest, Photo, Rect(0, 0, Photo.Width, Photo.Height), RGB(254,254,254));