A simple command-line tool for generating application icons. Quickly combine multiple images and create professional-looking icons for most versions of Windows, macOS, iOS & Linux.
The formal docopt
syntax for using IconPie is as follows:
$ icon-pie ((-e <file path> <size>... [-r (nearest | linear | cubic)])... (-ico | -icns | -png) [<output path>]) | -h | --help | -v | --version
Flag | Description |
---|---|
-e <options> |
Specify an entry's options. |
-r <filter> |
Specify a re-sampling filter: nearest , linear or cubic . If no filter is specified the app defaults to nearest . |
-ico [<output path>] |
Outputs to an .ico file. If no output path is specified the app outputs to stdout . |
-icns [<output path>] |
Outputs to an .icns file. If no output path is specified the app outputs to stdout . |
-png [<output path>] |
Outputs a .png sequence as a .tar file. If no output path is specified the app outputs to stdout . |
-h , --help |
Help. |
-v , --version |
Display version information. |
$ icon-pie -e small.svg 16 20 24 -e big.png 32 64 -ico output.ico
$ icon-pie -e image.png 32 64 48 -r linear -png output.tar
$ echo Here's an ICNS file: ${ icon-pie -e image.jpg 16 32 64 -r cubic -icns | hexdump }
Format | Supported? |
---|---|
PNG |
All supported color types |
JPEG |
Baseline and progressive |
GIF |
Yes |
BMP |
Yes |
ICO |
Yes |
TIFF |
Baseline(no fax support), LZW , PackBits |
WEBP |
Lossy(Luma channel only) |
PNM |
PBM , PGM , PPM , standard PAM |
SVG |
Limited |
IconPie has two main limitations: both ICNS
and SVG
are not fully supported. Due to the
use of external dependencies, this app's author is not able to fully support the formal specifications
of those two file formats.
However, the coverage provided by this external dependencies should be enough for most use cases.
OSType | Description | Supported? |
---|---|---|
ICON |
32×32 1-bit icon | No |
ICN# |
32×32 1-bit icon with 1-bit mask | No |
icm# |
16×12 1-bit icon with 1-bit mask | No |
icm4 |
16×12 4-bit icon | No |
icm8 |
16×12 8-bit icon | No |
ics# |
16×16 1-bit mask | No |
ics4 |
16×16 4-bit icon | No |
ics8 |
16x16 8-bit icon | No |
is32 |
16×16 24-bit icon | Yes |
s8mk |
16x16 8-bit mask | Yes |
icl4 |
32×32 4-bit icon | No |
icl8 |
32×32 8-bit icon | No |
il32 |
32x32 24-bit icon | Yes |
l8mk |
32×32 8-bit mask | Yes |
ich# |
48×48 1-bit mask | No |
ich4 |
48×48 4-bit icon | No |
ich8 |
48×48 8-bit icon | No |
ih32 |
48×48 24-bit icon | Yes |
h8mk |
48×48 8-bit mask | Yes |
it32 |
128×128 24-bit icon | Yes |
t8mk |
128×128 8-bit mask | Yes |
icp4 |
16x16 32-bit PNG/JP2 icon | PNG only |
icp5 |
32x32 32-bit PNG/JP2 icon | PNG only |
icp6 |
64x64 32-bit PNG/JP2 icon | PNG only |
ic07 |
128x128 32-bit PNG/JP2 icon | PNG only |
ic08 |
256×256 32-bit PNG/JP2 icon | PNG only |
ic09 |
512×512 32-bit PNG/JP2 icon | PNG only |
ic10 |
512x512@2x "retina" 32-bit PNG/JP2 icon | PNG only |
ic11 |
16x16@2x "retina" 32-bit PNG/JP2 icon | PNG only |
ic12 |
32x32@2x "retina" 32-bit PNG/JP2 icon | PNG only |
ic13 |
128x128@2x "retina" 32-bit PNG/JP2 icon | PNG only |
ic14 |
256x256@2x "retina" 32-bit PNG/JP2 icon | PNG only |
IconPie uses the nsvg
crate to rasterize .svg
files. According to the authors of the crate:
Like NanoSVG, the rasterizer only renders flat filled shapes. It is not particularly fast or accurate, but it is a simple way to bake vector graphics into textures.
The author of icon-pie
is inclined to search for alternatives to nsvg
if inquired to. Help would be appreciated.
Licensed under MIT license(LICENSE-MIT or http://opensource.org/licenses/MIT).