Skip to content

CatKeee/icns-generator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ICNS Icon Generator

A simple and easy-to-use cross-platform application icon generation tool that can convert various image formats to rounded application icons.

Features

  • ✨ Automatically generates all required icon sizes
  • 🎨 Automatically adds macOS-style rounded corners (20% corner radius)
  • 🖼️ Supports multiple image formats (PNG, JPG, WEBP, SVG, GIF, etc.)
  • 🛠️ Supports command line usage
  • 📦 Simple and easy to use, zero configuration
  • 🌍 Cross-platform support (Windows, macOS, Linux)
  • 🪟 Automatically generates Windows ICO files
  • 🍎 Automatically generates ICNS files on macOS (requires iconutil)

System Requirements

  • Node.js 14.0.0 or higher
  • macOS requires iconutil command (Xcode Command Line Tools) for .icns generation
  • Windows and Linux can generate PNG iconset and .ico files

Installation

Global Installation

# Using npm
npm install -g icns-generator

# Using pnpm (recommended)
pnpm add -g icns-generator

Local Installation

# Clone repository
git clone https://github.com/CatKeee/icns-generator.git
cd icns-generator

# Install dependencies
pnpm install

# Link globally
pnpm link --global

Usage

Command Line Usage

# Basic usage (finds icon.png in current directory and generates icon.icns)
icns-generator

# Specify input file
icns-generator --input my-icon.jpg

# Specify output file
icns-generator --output app-icon.icns

# View supported file formats
icns-generator --list-formats

# Full parameters
icns-generator --input my-icon.png --output app-icon.icns --dir temp.iconset --output-dir icons --padding 10 --work-dir /path/to/project

Parameters

  • -i, --input <path>: Input image path (default: icon.png)
  • -o, --output <path>: Output ICNS file path (default: icon.icns)
  • -d, --dir <path>: Temporary iconset directory name (default: icon.iconset)
  • -O, --output-dir <path>: Output directory for all generated files (default: output)
  • -p, --padding <percent>: Padding around the icon as percentage per side (default: 8.75)
  • -w, --work-dir <path>: Working directory (default: current directory)
  • --list-formats: Display supported file formats
  • -v, --version: Display version number
  • -h, --help: Display help information

Using in Code

import { generateIcons, generateIcns, generateIco } from "icns-generator";

// Recommended: Use cross-platform method (auto-adapts to current system)
// - All platforms: generates PNG iconset + .ico file
// - macOS (with iconutil): additionally generates .icns file
const result = await generateIcons({
  inputFile: "my-icon.png",
  outputDir: "icons",
  padding: 10,
});
console.log(result); // { iconset, icons, ico, icns }

// Generate ICO file only (all platforms)
await generateIco({
  inputFile: "my-icon.png",
  outputIco: "app-icon.ico",
  outputDir: "icons",
});

// Generate ICNS file only (macOS only, requires iconutil)
await generateIcns({
  inputFile: "my-icon.png",
  outputIcns: "app-icon.icns",
  iconsetDir: "temp.iconset",
  outputDir: "icons",
  padding: 10,
  workDir: "/path/to/project",
});

Development

Install Dependencies

pnpm install

Local Testing

# Run directly
node src/index.js

# Or run via CLI
node bin/cli.js

License

MIT


中文文档

About

A simple and easy-to-use macOS application icon (.icns) generator

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors