50 lines
1.5 KiB
Markdown
50 lines
1.5 KiB
Markdown
|
|
# png-to-ico
|
|||
|
|
|
|||
|
|
[](https://github.com/steambap/png-to-ico/actions?workflow=CI)
|
|||
|
|
|
|||
|
|
> png 转 ico 格式
|
|||
|
|
|
|||
|
|
## 简介
|
|||
|
|

|
|||
|
|
|
|||
|
|
## 安装
|
|||
|
|
> npm install --save-dev png-to-ico
|
|||
|
|
|
|||
|
|
## 使用方法
|
|||
|
|
在 npm script 脚本中使用:
|
|||
|
|
```
|
|||
|
|
png-to-ico electron.png > app.ico
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
在 node.js 程序中使用:
|
|||
|
|
```JavaScript
|
|||
|
|
import fs from 'fs';
|
|||
|
|
import pngToIco from 'png-to-ico';
|
|||
|
|
|
|||
|
|
try {
|
|||
|
|
const buf = await pngToIco('electron.png');
|
|||
|
|
fs.writeFileSync('app.ico', buf);
|
|||
|
|
} catch (error) {
|
|||
|
|
console.error(error);
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
如果你想要自己定义icon文件中每个BMP文件的大小, 那么参数可以直接传数组:
|
|||
|
|
```JavaScript
|
|||
|
|
try {
|
|||
|
|
const buf = await pngToIco(['electron16x16.png', 'electron32x32.png']);
|
|||
|
|
fs.writeFileSync('app.ico', buf);
|
|||
|
|
} catch (error) {
|
|||
|
|
console.error(error);
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 为什么使用 png-to-ico?
|
|||
|
|
给基于 electron 的程序生成图标没有什么好用的工具,大多数工具只给你转一种大小的图标。
|
|||
|
|
这样就会经常出现大图标模糊或者 electron 程序运行时左上角的图标还是默认的无图标的情况。
|
|||
|
|
我想拥有一个像 visual studio 里面给 .NET 程序打包工具那样会自动生成各种大小的图标工具,而且必须是 JS 的。
|
|||
|
|
所以就有了基于 [pngjs](https://github.com/lukeapage/pngjs) 这个没有 c++ 模块依赖的 JS 图形处理库编写的 png-to-ico,这样作为 windows 用户的我再也不用和 c++ 模块做斗争了。
|
|||
|
|
|
|||
|
|
## license
|
|||
|
|
[MIT](LICENSE)
|