使用 PhotoShop 制作带alpha通道的32位bmp图像(用以制作win32不规则窗口)

举报
福州司马懿 发表于 2022/11/15 20:16:12 2022/11/15
【摘要】 由于win32程序只支持bmp类型图片,因此需要使用 Photoshop 将 png 转为 bmp。最简单的方法是,将png图片导入 Photoshop 中我是先新建一个图层,然后用圆角矩形工具绘制圆角矩形,Ctrl+T调整矩形大小。然后在矩形图层上右击“栅格化图层”将其变为普通图层栅格化前栅格化后切换回“原始PNG图片”的图层(鼠标点击该图层)用魔术棒工具选择透明区域(如果选错了,则使用C...

前言

由于win32程序只支持bmp类型图片,因此需要使用 Photoshop 将 png 转为 bmp。

这里要为 UpdateLayeredWindow 函数做一个能用的,带透明度的32位bmp类型的背景图片

制作过程

最简单的方法是,将png图片导入 Photoshop 中
图片.png

我是先新建一个图层,然后用圆角矩形工具绘制圆角矩形,Ctrl+T调整矩形大小。

图片.png

图片.png

然后在矩形图层上右击“栅格化图层”将其变为普通图层

图片.png

栅格化前
图片.png
栅格化后
图片.png

切换回“原始PNG图片”的图层(鼠标点击该图层)用魔术棒工具选择透明区域(如果选错了,则使用Ctrl+D取消选区)

图片.png

然后,把原始图层左侧的眼睛点掉,让其不可见。再点击“圆角矩形”图层,进行图层切换,然后按 Delete 键,删除选区

图片.png

然后再用魔术棒按一下已经被裁剪后有颜色的部分。然后切换到“原始PNG图片”的图层,右键“存储选区”,输入 alpha(名字随意)

图片.png

图片.png

之后切换到“图层”旁边的“通道”面板。查看alpha通道(需要的即刚刚选中的部分设为白色,不需要的设为黑色)

图片.png

最后,点亮所有通道左侧的眼睛图标,图层只显示“原始PNG图片”的图层

图片.png

图片.png

文件 ——> 存储为(Ctrl+Shift+S)

图片.png

格式切换成BMP,然后勾选 alpha 通道(如果无法勾选,请确认是否正确执行“存储选区”)

图片.png

图片.png

最后选择32位,或在高级模式中选择 A8R8G8B8(翻转行列不能勾选,否则C++读不出)

图片.png

图片.png

注意事项

UpdateLayeredWindow 函数支持的32位带透明通道的bmp图片有点特殊,光靠上述做法,虽然可以实现bmp图像里面,包含XRGB透明通道,也能使得鼠标直接透过当前窗口,但展示出来依旧是白色

因此还需要做如下处理

首先,右下角垃圾桶左侧按钮,新建图层。然后将新建图层拖到最下方的位置

图片.png

图片.png

选中刚刚新建的图层,左侧调整前景色为黑色,用油漆桶填充整个图层

图片.png

切换到通道选项卡,确保新建的“alpha通道”(名字可以任意)左侧的小眼睛已经被点亮,然后按之前的方式,保存为32位bmp

图片.png

这是最终的图片

图片.png

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。