Menu

PDF to ICO

← TOC    ↑ Home    PDF EPS SVG PNG JPEG ICO XPM

PDF to ICO

This page shows how to convert a PDF file x.pdf into a Windows icon file.

The drawing must be a 1 inch × 1 inch square.


Choice 1: Use gxhconvert

Procedure

gxhconvert -o=ico x.pdf

See the [gxhconvert manual] for a full description of the gxhconvert script.

Options

Option Purpose
-a, --alpha Create alpha channel. Untouched input regions result in transparent output regions.

Choice 2: Manual conversion, create alpha channel

Step 1: Convert PDF to SVG

pdf2svg x.pdf x.svg

Step 2: Create 32 bit color PNG files

inkscape --batch-process --export-type=png --export-overwrite --export-filename=x-48.png --export-dpi=48 --export-area-page x.svg
inkscape --batch-process --export-type=png --export-overwrite --export-filename=x-32.png --export-dpi=32 --export-area-page x.svg
inkscape --batch-process --export-type=png --export-overwrite --export-filename=x-24.png --export-dpi=24 --export-area-page x.svg
inkscape --batch-process --export-type=png --export-overwrite --export-filename=x-16.png --export-dpi=16 --export-area-page x.svg

Step 3: Create 8 bit color PNG files

pngnq x-48.png
pngnq x-32.png
pngnq x-24.png
pngnq x-16.png

Step 4: Create alpha PGM files

pngtopam -alpha x-48.png > x-48.pgm
pngtopam -alpha x-32.png > x-32.pgm
pngtopam -alpha x-24.png > x-24.pgm
pngtopam -alpha x-16.png > x-16.pgm

Step 5: Create 24 bit PPM files

pngtopam -mix x-48.png > x-48-24.ppm
pngtopam -mix x-32.png > x-32-24.ppm
pngtopam -mix x-24.png > x-24-24.ppm
pngtopam -mix x-16.png > x-16-24.ppm

Step 6: Create 8 bit PPM files

pngtopam -mix x-48-nq8.png > x-48-08.ppm
pngtopam -mix x-32-nq8.png > x-32-08.ppm
pngtopam -mix x-24-nq8.png > x-24-08.ppm
pngtopam -mix x-16-nq8.png > x-16-08.ppm

Step 7: Create 4 bit PPM files

pnmquant 16 x-48-24.ppm > x-48-04.ppm
pnmquant 16 x-32-24.ppm > x-32-04.ppm
pnmquant 16 x-24-24.ppm > x-24-04.ppm
pnmquant 16 x-16-24.ppm > x-16-04.ppm

Step 8: Produce ICO file

PPMS="x-48-24.ppm x-48.pgm x-48-08.ppm x-48.pgm x-48-04.ppm x-48.pgm"
PPMS="$PPMS x-32-24.ppm x-32.pgm x-32-08.ppm x-32.pgm x-32-04.ppm x-32.pgm"
PPMS="$PPMS x-24-24.ppm x-24.pgm x-24-08.ppm x-24.pgm x-24-04.ppm x-24.pgm"
PPMS="$PPMS x-16-24.ppm x-16.pgm x-16-08.ppm x-16.pgm x-16-04.ppm x-16.pgm"
ppmtowinicon -andpgms -truetransparent -output=x.ico $PPMS

Temporary files

  • x.svg
  • x-48.png
  • x-48-nq8.png
  • x-48.pgm
  • x-48-24.ppm
  • x-48-08.ppm
  • x-48-04.ppm
  • x-32.png
  • x-32-nq8.png
  • x-32.pgm
  • x-32-24.ppm
  • x-32-08.ppm
  • x-32-04.ppm
  • x-24.png
  • x-24-nq8.png
  • x-24.pgm
  • x-24-24.ppm
  • x-24-08.ppm
  • x-24-04.ppm
  • x-16.png
  • x-16-nq8.png
  • x-16.pgm
  • x-16-24.ppm
  • x-16-08.ppm
  • x-16-04.ppm

Choice 3: Manual conversion, do not create an alpha channel

Step 1: Create 24-bit color PPM files

pdftoppm -r 48 x.pdf > x-48-24.ppm
pdftoppm -r 32 x.pdf > x-32-24.ppm
pdftoppm -r 24 x.pdf > x-24-24.ppm
pdftoppm -r 16 x.pdf > x-16-24.ppm

Step 2: Create 24-bit color PNG files

pnmtopng x-48-24.ppm > x-48.png
pnmtopng x-32-24.ppm > x-32.png
pnmtopng x-24-24.ppm > x-24.png
pnmtopng x-16-24.ppm > x-16.png

Step 3: Create 8-bit color PNG files

pngnq x-48.png
pngnq x-32.png
pngnq x-24.png
pngnq x-16.png

Step 4: Create 8-bit PPM files

pngtopam -mix x-48-nq8.png > x-48-08.ppm
pngtopam -mix x-32-nq8.png > x-32-08.ppm
pngtopam -mix x-24-nq8.png > x-24-08.ppm
pngtopam -mix x-16-nq8.png > x-16-08.ppm

Step 5: Create 4-bit PPM files

pnmquant 16 x-48-24.ppm > x-48-04.ppm
pnmquant 16 x-32-24.ppm > x-32-04.ppm
pnmquant 16 x-24-24.ppm > x-24-04.ppm
pnmquant 16 x-16-24.ppm > x-16-04.ppm

Step 6: Produce ICO file

PPMS="x-48-24.ppm x-48-08.ppm x-48-04.ppm"
PPMS="$PPMS x-32-24.ppm x-32-08.ppm x-32-04.ppm"
PPMS="$PPMS x-24-24.ppm x-24-08.ppm x-24-04.ppm"
PPMS="$PPMS x-16-24.ppm x-16-08.ppm x-16-04.ppm"
ppmtowinicon -output=x.ico $PPMS

Temporary files

  • x.map
  • x-48.png
  • x-48-nq8.png
  • x-48-24.ppm
  • x-48-08.ppm
  • x-48-04.ppm
  • x-32.png
  • x-32-nq8.png
  • x-32-24.ppm
  • x-32-08.ppm
  • x-32-04.ppm
  • x-24.png
  • x-24-nq8.png
  • x-24-24.ppm
  • x-24-08.ppm
  • x-24-04.ppm
  • x-16.png
  • x-16-nq8.png
  • x-16-24.ppm
  • x-16-08.ppm
  • x-16-04.ppm
← TOC    ↑ Home    PDF EPS SVG PNG JPEG ICO XPM

Related

Wiki: gxhconvert manual