使用 PhotoShop 制作带alpha通道的32位bmp图像(用以制作win32不规则窗口)
前言
由于win32程序只支持bmp类型图片,因此需要使用 Photoshop 将 png 转为 bmp。
这里要为 UpdateLayeredWindow
函数做一个能用的,带透明度的32位bmp类型的背景图片
制作过程
最简单的方法是,将png图片导入 Photoshop 中
我是先新建一个图层,然后用圆角矩形工具绘制圆角矩形,Ctrl+T调整矩形大小。
然后在矩形图层上右击“栅格化图层”将其变为普通图层
栅格化前
栅格化后
切换回“原始PNG图片”的图层(鼠标点击该图层)用魔术棒工具选择透明区域(如果选错了,则使用Ctrl+D取消选区)
然后,把原始图层左侧的眼睛点掉,让其不可见。再点击“圆角矩形”图层,进行图层切换,然后按 Delete 键,删除选区
然后再用魔术棒按一下已经被裁剪后有颜色的部分。然后切换到“原始PNG图片”的图层,右键“存储选区”,输入 alpha(名字随意)
之后切换到“图层”旁边的“通道”面板。查看alpha通道(需要的即刚刚选中的部分设为白色,不需要的设为黑色)
最后,点亮所有通道左侧的眼睛图标,图层只显示“原始PNG图片”的图层
文件 ——> 存储为(Ctrl+Shift+S)
格式切换成BMP,然后勾选 alpha 通道(如果无法勾选,请确认是否正确执行“存储选区”)
最后选择32位,或在高级模式中选择 A8R8G8B8(翻转行列不能勾选,否则C++读不出)
注意事项
UpdateLayeredWindow
函数支持的32位带透明通道的bmp图片有点特殊,光靠上述做法,虽然可以实现bmp图像里面,包含XRGB透明通道,也能使得鼠标直接透过当前窗口,但展示出来依旧是白色
因此还需要做如下处理
首先,右下角垃圾桶左侧按钮,新建图层。然后将新建图层拖到最下方的位置
选中刚刚新建的图层,左侧调整前景色为黑色,用油漆桶填充整个图层
切换到通道选项卡,确保新建的“alpha通道”(名字可以任意)左侧的小眼睛已经被点亮,然后按之前的方式,保存为32位bmp
这是最终的图片
- 点赞
- 收藏
- 关注作者
评论(0)