Mac更换鼠标指针样式_ANI、CUR文件解析
前情提要
因为之前写了一篇mousecape的博客有一些回应,所以我决定写个续。主要是教大家怎么把cur文件和ani文件插入到mousecape里面,顺便提供几个做好的cape文件。
先给大家推荐一个bilibili的视频教程,也是一种把Windows鼠标样式文件插入mousecape的方法,如果没有批量转换的需求,可以照他的来。
以罗小黑鼠标样式为例
一、把cur、ani文件转成ico、gif或png
cur和ani文件格式
cur文件最简单,因为它和ico的格式是一样的,当然也不完全是这样,有一些cur文件也是采用和ani一样的策略来存的,所以bilibili那篇教程上有人评论说cur也拖不进去(如果不太理解“拖不进去”以及后文一些描述的意思,可以先去看我的上一篇博客),就是因为有一些cur文件不是ico格式,所以要和ani做一样的解析。
cur、ani的在线解析和工具解析
reaConverter等鼠标样式编辑工具都可以把cur、ani转化成常见图片格式。但是不一定可以macOS上使用,也不能批量转换,比较不实用。
另外有一种线上转换的方法,像https://ezgif.com/ani-to-gif等网站都提供了转换方法,但是也不能批量,更不能离线。批量我试过利用爬虫技术来解决,不过没能做到,有能力的朋友可以一试。
上面bilibili的教程也是提供了这个方案,如果没有批量转换的需求,可以试一下。
cur、ani命令行解析
因为有些鼠标样式集都会有较多的ani文件,还是会有批量转换的需求,所以我还是想分享一个命令行解析的法子。而且主要是我看到csdn上居然有人拿这个格式转换的代码来收费,不忍大家花冤枉钱,所以要将方法公诸于众。
github上有一个开源项目就是可以解析cur和ani的。虽然他的主要功能是做Windows和Linux鼠标样式文件的转化,但是稍微改造一下就可以把cur和ani转换成常见图片格式了。现在已经改造好了,放在gitee上,大家直接去下载就好。
具体的使用方式建议参考README文档,这里我以罗小黑的鼠标指针样式为例做个介绍。
大家可以先下载一下Win+罗小黑鼠标指针,如果链接失效可以私信索取。
然后安装一下win2xcur_plus:
pip install -e git+https://gitee.com/xuanyusan/win2xcur_plus.git#egg=win2xcur_plus
先把cur文件转成ico,方便看:
cd <Win+罗小黑鼠标指针 目录>
rename "s/cur/ico/" *.cur
# 顺便鉴定一下cur文件是不是ico格式,如果不是
wincur2img --type png <非ico格式cur文件>
ani则转成png长图:
cd <Win+罗小黑鼠标指针 目录>
ls | grep ani | while read name;do wincur2img --type apng $name;done;
最后效果如下:

二、把ico文件和gif文件生成cape文件
有了gif或png文件就可以自己做cape文件了,具体怎么做可以看上一篇教程。
这次主要补充提一下几个bug和注意事项:
FrameCount不能超过24
Windows的ani文件对于帧数是比较宽松的,所以ani转png或gif,FrameCount可能会超。我在工具里是对24以上的做了抽帧处理,如果掉帧过于明显,还需要自己做一下优化。
应用变半透明的bug
我们直接双击一个cape文件应用可能会导致样式变半透明,这时建议直接把文件拖到mousecape存放cape文件的目录下。
编辑变半透明的bug
如果需要编辑一个鼠标样式,建议先做备份,然后再修改,改完把改动的地方复制到备份的文件里。
因为cape本质是一份xml文件,编辑也好,应用也好,可能会导致里面的data字段发生变化。具体的规律是如果cape文件里面有动图,编辑和应用就会导致data发生变化。下面贴一下xml的具体内容,图片数据就是放在array下的data字段,以base64的格式存储。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Author</key>
<string>xuanyuwanqiu</string>
<key>CapeName</key>
<string>LuoXiaohei</string>
<key>CapeVersion</key>
<real>1</real>
<key>Cloud</key>
<false/>
<key>Cursors</key>
<dict>
<key>com.apple.coregraphics.Arrow</key>
<dict>
<key>FrameCount</key>
<integer>2</integer>
<key>FrameDuration</key>
<real>1</real>
<key>HotSpotX</key>
<real>0.0</real>
<key>HotSpotY</key>
<real>0.0</real>
<key>PointsHigh</key>
<real>32</real>
<key>PointsWide</key>
<real>32</real>
<key>Representations</key>
<array>
<data>
... ...
</data>
</array>
</dict>
</dict>
</dict>
</plist>
后记
因为变成cape文件需要指定图片和指针状态的关系以及HotSpot,所以就没办法自动化,但是这篇文章已经教大家把Windows鼠标样式文件变成macOS下能用的,相信已经足够了。我在的项目里提供了两个现成的cape文件给大家。
这些鼠标样式不知道会不会有版权问题,不然我也挺希望能建一个社区来放这些文件的,然后大家都可以来上传下载。为macOS社区贡献一些方案。有懂法律或者有想建站的可以来交流交流。
另外,如果关注这个东西人多的话,我会考虑想办法从代码层面修复一下mousecape的bug,而不是现在这种外部干扰的方法。
Mac更换鼠标指针样式_ANI、CUR文件解析的更多相关文章
- Mac更换鼠标指针样式_mousecape教程
mousecape项目介绍 这是github上的一个项目,作者是alexzielenski. 项目是用于修改Mac系统鼠标样式的,支持动态鼠标样式. 该项目停止更新于2014年,目前仍可以被较新的系统 ...
- css Cursor:url()自定义鼠标指针样式为图片
css自定义鼠标指针样式为图片Cursor:url()的使用,今天在项目中,要用到自定义鼠标样式,格式: css:{cursor:url('绝对路径的图片(格式:cur,ico)'),-moz-zoo ...
- 利用Css3样式属性Cursor来更换自定义个性化鼠标指针(光标)
现而今,我们纵向的回顾整个大前端的历史,不难发现,人们对前端的审美要求越来越高,越来越严苛,与此同时,人们对追求美的体验是也极致的,从理性到感性,从平面到几何,从现实到虚拟,所以从某种角度来说,作为前 ...
- 鼠标指针光标样式css cursor default pointer hand url
一.cursor语法与结构 1.cursor语法:cursor : auto | crosshair | default | hand | move | help | wait | text | w- ...
- CSS鼠标指针cursor样式
参考来源:W3SCHOOL 有时我们需要在CSS布局时设定特定的鼠标指针样式,这时可以通过设定cursor来实现: url: 需使用的自定义光标的 URL. 注释:请在此列表的末端始终定义一种普通的光 ...
- 简简单单制作鼠标静态动态 ani cur 小结 鼠标形状指针
近日在网上看到一个视频录制软件里的鼠标样子的指针感觉蛮好的自己制作了一个,效果还不错,几乎跟那个鼠标形状一模一样啦.总结了下制作过程现分享如下:1.首先用ps建立一个30*30像素的空白图片 然后将自 ...
- DSAPI 远程协助之获取当前鼠标指针坐标及样式
在编写远程协助类软件时,除了获取屏幕画面外,还需要获取鼠标当前的坐标以及当前的指针样式,以便让远程屏幕知道当前的操作状态. 使用DSAPI内置的鼠标指针类,可轻松获取. 代码如下: Imports D ...
- 【css】cursor鼠标指针光标样式知识整理
在前端开发中,我们经常需要对对象鼠标指针光标进行控制,比如鼠标经过超链接时变成手指形状.在这里整理一下cursor鼠标指针光标样式的知识,记录与方便以后查找. 1.常用cursor光标 div( cu ...
- cursor CSS属性定义鼠标指针悬浮在元素上时的外观。
1 1 cursor CSS属性定义鼠标指针悬浮在元素上时的外观. https://developer.mozilla.org/zh-CN/docs/Web/CSS/cursor 概述 cursor ...
随机推荐
- SpringBoot整合JDBC-调用数据库
SpringData 对于数据访问层,无论是 SQL(关系型数据库) 还是 NOSQL(非关系型数据库),Spring Boot 底层都是采用 Spring Data 的方式进行统一处理. Sprin ...
- CentOS 7安装docker环境
一.环境准备 Docker支持以下的CentOS版本: 1.Docker运行在CentOS 7(64-bit)上要求系统为64位,系统内核版本为3.10以上 2.Docker运行在Centos 6.5 ...
- 2021.7.27--Benelux Algorithm Programming Contest 2020 补提
I Jigsaw 题目内容: 链接:https://ac.nowcoder.com/acm/contest/18454/I 来源:牛客网 You have found an old jigsaw pu ...
- 2021.3.3--vj补题
题目 C - C CodeForces - 1166C The legend of the foundation of Vectorland talks of two integers xx and ...
- Frida-RPC调用
Python Frida RPC 调用示例 JS_CODE var base64EncodeChars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrs ...
- scrapy爬虫简单项目入门练习
[写在开头] scrapy环境配置配置好了之后,开始着手简单项目入门练习.关于环境配置见上一篇博客https://www.cnblogs.com/ljxh/p/11235079.html. [正文部分 ...
- javascript-原生-结构
1.获取用户输入内容的方法 window.prompt("提示信息","默认值"); 获取用户输入内容(字符串类型),返回用户输入内容. 2.顺序结构:所有语句 ...
- 80. 删除有序数组中的重复项 II
题目 给你一个有序数组 nums ,请你原地删除重复出现的元素(不需要考虑数组中超出新长度后面的元素),使每个元素最多出现两次 ,返回删除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入 ...
- UltraSoft - Beta - Scrum Meeting 1
Date: May 17th, 2020. Scrum 情况汇报 进度情况 组员 负责 今日进度 q2l PM.后端 维护Beta阶段文档 Liuzh 前端 增加删除操作按钮 Kkkk 前端 查询增加 ...
- Noip模拟45 2021.8.21
一定别删大括号,检查是;还是, ceil函数里面要写double,否则根本没用!!!!!!! T1 打表 正解:打表 考场上很难真正把柿子理解着推出来 况且想要理解题意就很难,比如我就理解错了 半猜着 ...