如何增加透明图标的canvas?

How can I icrease the canvas of a transparent icon?

我有一些透明图标,其尺寸小于我要添加它们的 ImageList。我尝试像往常一样使用 ImageList.AddIcon(IcoHandle); 添加它们,但它们似乎已缩放到 ImageList 大小。我想找到一种方法来增加我的图标的 canvas 透明颜色,这样它就可以在不缩放的情况下添加到 ImageList 中。这可能吗?

更新 1:

我已经按照大卫说的做了,但是图标失去了透明度...

 LoadIconWithScaleDown(HInstance, PChar('NUT_VITAL'), ISmall, ISmall, hI);
 Ico.Handle:= hI;

 Bmp:= TBitmap.Create;
 Bmp.Transparent:= True;
 Bmp.PixelFormat:= pf32bit;
 Bmp.SetSize(ISize, ISize);
 Bmp.Canvas.Draw(0, 0, Ico);
 Pics.Add(Bmp, nil);
 Bmp.Free;

我终于弄明白了...感谢 David、Ken 和 Torbins 在 here 的回答。

在设置位图大小之前,我必须将画笔样式设置为 bsClear。 :)

LoadIconWithScaleDown(HInstance, PChar('NUT_VITAL'), ISmall, ISmall, hI);
Ico.Handle := hI;

Bmp := TBitmap.Create;
try
  Bmp.Canvas.Brush.Style := bsClear;
  Bmp.SetSize(ISize, ISize);
  N := (ISize - ISmall) div 2;
  Bmp.Canvas.Draw(N, N, Ico);
  Pics.Add(Bmp, nil);
finally
  Bmp.Free; 
end;