delphi 将图片分配给TIimage并定义透明像素的背景色

kzipqqlq  于 2023-01-05  发布在  其他
关注(0)|答案(1)|浏览(364)

**问题:**我在 Delphi VCL表单上有一个TIimage,并希望从TImageList中分配一个图片。

图片有透明像素。
当显示TImage中的图片时,我希望用clBlue颜色显示所有透明像素。不幸的是TImage没有背景色属性。

我已经尝试过的:

用蓝色填充TIimage,然后分配图片:

MyImage.Canvas.Brush.Style := bsSolid;
MyImage.Canvas.Brush.Color := clBlue;
MyImage.Canvas.FillRect(Rect(0, 0, MyImage.Width, MyImage.Height));
MyImage.Picture.Assign(MyImageList[1]);

设置位图的透明颜色:

MyImage.Picture.Bitmap.TransparentColor := clBlue;
MyImage.Picture.Assign(MyImageList[1]);

什么都不管用:-(

bis0qfac

bis0qfac1#

procedure DrawPictureWithBackgroundColor(Image: TImage; Graphic: TGraphic; BackgroundColor: TColor);
begin
  Image.Canvas.Brush.Style := bsSolid;
  Image.Canvas.Brush.Color := BackgroundColor;
  Image.Canvas.FillRect(Rect(0, 0, Image.Width, Image.Height));
  Image.Canvas.StretchDraw(Rect(0, 0, Image.Width, Image.Height), Graphic);
end;

用法:

DrawPictureWithBackgroundColor(MyImage, MyImageList[1], clBlue);

相关问题