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 ...
随机推荐
- Java(17)面向对象之多态
作者:季沐测试笔记 原文地址:https://www.cnblogs.com/testero/p/15201621.html 博客主页:https://www.cnblogs.com/testero ...
- Java和jmeter环境变量的配置来这就对了!
java环境变量设置 1.新建JAVA_HOME 变量 点击 新建按钮 变量名:JAVA_HOME 变量值:电脑上JDK安装的绝对路径 2.新建/修改 CLASSPATH 变量 如果存在 CLASSP ...
- Visual Studio 重置窗口布局
Visual Studio 重置窗口布局
- 2 What is the Domain Driven Design? 什么是领域驱动设计
What is the Domain Driven Design? 什么是领域驱动设计 Domain-driven design (DDD) is an approach to software de ...
- EMC测试国家标准GB/T 17626
转载: 详解EMC测试国家标准GB/T 17626 - whik - 博客园 (cnblogs.com)
- js--数组的 fill() 填充方法详解
前言 我们知道了很多了初始化数组的方法,但是初始化数组之后,数组中的每一项元素默认为 empty 空位占位,如何对数组这些空位添加默认的元素,ES6提供了 fill() 方法实现这一操作.本文总结数组 ...
- linux shell文件合并 去重 分割
1,合并+去重+分割 转载:shell 文件合并,去重,分割 - kakaisgood - 博客园 (cnblogs.com) 第一:两个文件的交集,并集前提条件:每个文件中不得有重复行1. 取出两个 ...
- P2120 [ZJOI2007]仓库建设
P2120 [ZJOI2007]仓库建设 怎么说呢?算是很水的题了吧... 只要不要一开始就把dp想错就行... #include<bits/stdc++.h> #define ll lo ...
- Atcoder 题目泛做
我思维越来越菜了,这样下去感觉要退役了. 听说Atcoder的题练思维?那就试着做一做吧. 坚持每天一两道吧.(很有可能咕掉.) AGC036 官方题解 ---A-Triangle ...
- cf14C Four Segments(计算几何)
题意: 给四个线段(两个端点的坐标). 判断这四个线段能否构成一个矩形.(矩形的四条边都平行于X轴或Y轴) 思路: 计算几何 代码: class Point{ public: int x,y; voi ...