如何用Python自动实现Windows鼠标光标水平翻转适配左利手
自动化实现左利手Windows光标翻转
可以完全跳过GIMP手动操作,用Python的Pillow库实现步骤2的自动水平翻转+热点位置计算,把整个光标修改流程整合为一键脚本。
完整自动化流程
准备环境
先安装图像处理所需的Pillow库:pip install pillow复制光标文件
将C:\Windows\Cursors下的所有.cur文件,复制到脚本所在目录的Cursors子文件夹中。运行全自动化脚本
这个脚本会自动完成「CUR格式读取→水平翻转图像→计算翻转后热点→转回CUR格式」的全流程,无需手动操作:from pathlib import Path from PIL import Image CURRENT = Path(__file__).resolve().parent # 创建左利手光标输出目录 output_dir = CURRENT.joinpath("LeftHanded_Cursors") output_dir.mkdir(exist_ok=True) # 批量处理所有CUR光标文件 for cur_file in CURRENT.joinpath("Cursors").glob("*.cur"): with Image.open(cur_file) as img: # 获取原光标热点位置(CUR文件的核心交互点) orig_hotspot = img.info.get("hotspot", (0, 0)) # 执行水平翻转 flipped_img = img.transpose(Image.FLIP_LEFT_RIGHT) # 计算翻转后的热点:镜像后x坐标=原宽度-原x坐标-1(像素索引从0开始) new_hotspot_x = img.width - orig_hotspot[0] - 1 new_hotspot_y = orig_hotspot[1] # 临时保存为ICO格式,再转换为CUR temp_ico = output_dir.joinpath(f"{cur_file.stem}_temp.ico") flipped_img.save(temp_ico, format="ICO") # 修改文件头和热点信息,转为CUR格式 data = bytearray(temp_ico.read_bytes()) data[2] = 0x02 # 把ICO头(0x01)改成CUR头(0x02) # 写入热点x坐标(小端序,第10-11字节) data[10] = new_hotspot_x & 0xFF data[11] = (new_hotspot_x >> 8) & 0xFF # 写入热点y坐标(小端序,第12-13字节) data[12] = new_hotspot_y & 0xFF data[13] = (new_hotspot_y >> 8) & 0xFF # 保存最终左利手光标文件 final_cur = output_dir.joinpath(f"{cur_file.stem}_left.cur") final_cur.write_bytes(data) # 删除临时ICO文件 temp_ico.unlink() print("所有光标翻转完成!")加载修改后的光标
进入「设置-蓝牙和设备-鼠标-其他鼠标设置-指针」,新建光标方案,逐个替换为LeftHanded_Cursors文件夹中的光标文件即可。
关键细节说明
- 热点位置自动计算:水平翻转后,原热点的x坐标需要通过「图像宽度-原x坐标-1」计算,确保翻转后的光标交互点位置准确。
- 批量处理效率:脚本会自动遍历所有CUR文件,一次性完成全部光标修改,无需逐个手动操作。
- 格式转换逻辑:利用Pillow直接读取CUR文件的特性,跳过手动改头转ICO的步骤,仅在保存时临时用ICO过渡,最后转回CUR格式。
内容的提问来源于stack exchange,提问作者SodaCris
相关产品推荐
相关产品推荐

