Delphi TBitMap 从 ImageList 到按钮的透明度
我正在尝试在代码下方创建一个带有透明位图图像的自定义图标按钮。 图标存储在连接到 ActionList 的 ImageList 中。
bitmap := TBitmap.Create;
BmpObj := TMemoryStream.Create;
try
ImageList.GetBitmap(ActionList.Actions[i].ImageIndex, bitmap);
bitmap.Transparent := TRUE;
bitmap.TransparentColor := clWhite;
bitmap.Canvas.Brush.Color := clWhite;
bitmap.SaveToStream(BmpObj);
finally
BmpObj.Free;
bitmap.Free;
end;
我不知道我错过了什么..有人对这个问题有想法吗?
I am trying to create a custom icon button with a transparent bitmap image, below the code.
The icon is stored in an ImageList connected to an ActionList.
bitmap := TBitmap.Create;
BmpObj := TMemoryStream.Create;
try
ImageList.GetBitmap(ActionList.Actions[i].ImageIndex, bitmap);
bitmap.Transparent := TRUE;
bitmap.TransparentColor := clWhite;
bitmap.Canvas.Brush.Color := clWhite;
bitmap.SaveToStream(BmpObj);
finally
BmpObj.Free;
bitmap.Free;
end;
I don't know what I am missing.. Anyone has an idea about this problem?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
由于对我所询问的组件没有更好的了解,我展示了在许多 Windows 控件上拥有透明图像的基本方法。
获取一个
TImageList
并用您要使用的图像填充它。左下像素决定透明颜色。在我的示例中,黑色数字放置在白色背景上。在按钮上,将属性
Images
设置为您的ImageList
并将ImageIndex
设置为有效的图像编号 (0 .. )。图像将出现在按钮上,白色区域透明。在下图中,我在位图中包含了一个
TImage
,以便您可以看到实际的颜色。请注意,不需要代码。
Without better knowledge about the components I asked about, I show the basic way of having transparent image on many Windows controls.
Take a
TImageList
and fill it with the images you want to use. The lower left pixel determines the transparent color. In my example black numbers are placed on white background.On the button, set property
Images
to yourImageList
andImageIndex
to a valid image number (0 .. ). The image will appear on the button, with the white colored areas transparent.In the image below, I include a
TImage
with the bitmap so you can see the actual colors.Note no code required.