windows鼠标指针数据格式类型说明

windows鼠标指针有如下几种数据格式

  • COLOR彩色类型

该模式为具有alpha通道的标准32位彩色图像,直接使用alpha通道进行颜色图像混合
即dstColor = srcColor * (1 - alpha) + cursorColor * alpha得出目标图像

  • MONOCHROME单色蒙板类型

指针类型是单色鼠标指针,它是单色位图。位图的大小为指针相同宽度,指针高度x2,它会得到一个掩码和一个异或掩码组合成一组掩码数据。
每一bit数据对应一像素,一行数据为指针像素宽度个数bit,异或掩码与掩码相差像素高度个数*宽度bit数。
例,如鼠标指针为像素32*32,则该蒙板大小为32*64,每一行掩码数据为32bit即4byte,当掩码为0时则异或掩码为0 + 32(即蒙板高度/2) * 4
最终图像需要先做AndMask掩码运算再做XorMask异或掩码运算
如果AndMask为1时,则srcColor = srcColor & (AndMask ? 0xFFFFFFFF : 0xFF000000)
如果XorMask为1时,则srcColor = srcColor ^ (XorMask ? 0x00FFFFFF : 0x00000000)
所以最终图像结果为srcColor = (srcColor & (AndMask ? 0xFFFFFFFF : 0xFF000000)) ^ (XorMask ? 0x00FFFFFF : 0x00000000)

  • MASKED_COLOR彩色蒙版类型

该模式中使用alpha位的mask值来设置,当该位为0xFF则使目标颜色与指针颜色做异或操作,否则为0x00时直接使用指针颜色
即dstColor = (mask == 0xFF ? (srcColor ^ cursorColor) : cursorColor)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值