delphi - 如何创建透明图标的画布?
问题描述
我有一些透明图标,其大小比要添加它们的 ImageList 小。我尝试像往常一样添加它们,ImageList.AddIcon(IcoHandle);
但似乎它们已缩放到 ImageList 大小。我想找到一种方法来增加具有透明颜色的 Icon 的画布,以便将其添加到 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;
解决方案
我终于想通了......感谢大卫,肯和托宾斯从这里回答。
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;
推荐阅读
- ios - Info.plist 中的 UIRequiredDeviceCapabilities 键设置为应用程序不会安装在 iPad 上
- java - 我手机中的这个应用商店笔记在它第一次运行时运行它,然后我单击添加按钮并且应用程序崩溃。从手机加载应用程序数据的问题
- json - 如何读取包含许多下级的 pandas 数据帧复杂 JSON 文件
- python - Python请求接收状态码400中的问题
- node.js - 如何将整数值作为 JSON 后值发送并在 express JS 文件中处理?
- javascript - 有没有办法使用 Javascript 显示此幻灯片上的最后一张图片?
- javascript - 努力兑现承诺
- vim - FZF之类的快速切换到目录的方式?在 Vim FZF 中包含隐藏文件?
- android - 关闭所有用户会话 Android Firebase
- java - 在绘画面板上添加消息框