https://github.com/steambap/png-to-ico
convert png to ico format
https://github.com/steambap/png-to-ico
cli converter ico image image-processing png png-converter png-icon
Last synced: 4 months ago
JSON representation
convert png to ico format
- Host: GitHub
- URL: https://github.com/steambap/png-to-ico
- Owner: steambap
- License: mit
- Created: 2016-09-13T01:48:25.000Z (almost 10 years ago)
- Default Branch: main
- Last Pushed: 2026-03-20T05:29:47.000Z (4 months ago)
- Last Synced: 2026-03-20T21:55:33.838Z (4 months ago)
- Topics: cli, converter, ico, image, image-processing, png, png-converter, png-icon
- Language: JavaScript
- Homepage:
- Size: 642 KB
- Stars: 177
- Watchers: 2
- Forks: 24
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Agents: AGENTS.md
Awesome Lists containing this project
- awesome-micro-npm-packages-zh - png-to-ico - 将PNG转换为Windows ICO格式. (模块 / CLI)
- fucking-awesome-micro-npm-packages - png-to-ico - Convert png to windows ico format. (Modules / CLI)
- awesome-micro-npm-packages - png-to-ico - Convert png to windows ico format. (Modules / CLI)
- awesome-micro-npm-packages - png-to-ico - Convert png to windows ico format. (Modules / CLI)
README
# png-to-ico
[](https://github.com/steambap/png-to-ico/actions?workflow=CI)
> convert png to windows ico format
## Translations
[中文](README_CN.md)
## intro

## install
> npm install --save-dev png-to-ico
## usage
npm script:
```
png-to-ico electron.png > app.ico
```
npx script:
```
npx png-to-ico -- electron.png > app.ico
```
This way you can run the script without installing the package into your project
programming usage:
```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);
}
```
If you want to control what sizes should be in the icon file, pass an array of files:
```JavaScript
const buf = await pngToIco(['electron16x16.png', 'electron32x32.png']);
fs.writeFileSync('app.ico', buf);
```
## Why use png-to-ico?
When I work on an electron project, it's always a nightmare to create ico for windows.
There're so many options out there like apps that make icon for you, photoshop plugin. But none of them satisfy me.
I want a JavaScript module that works like the .NET ico tool, which automatically generate different sizes for ico file.
Based on [pngjs](https://github.com/lukeapage/pngjs):
Simple PNG encoder/decoder library written entirely in JavaScript for Node, with zero external or native dependencies.
In other words, png-to-ico is written purely in JavaScript, which is great for windows user.
## license
[MIT](LICENSE)