unihex2png(1) GNU Unifont .hex file to Portable Network Graphics converter


unihex2png [-i input_file.hex ] -o output_file.png [-p pagenum ] [-r rows ]


unihex2png reads a page of 256 Unicode code points from a GNU Unifont .hex file and converts the page into a Portable Network Graphics (PNG) file. The graphics file displays the glyphs of a Unicode block of 256 code points in a 32 by 32 pixel grid, or in a 40 by 40 pixel grid if "-r 32" is specified. The glyphs themselves can be either 16, 24, or 32 pixels tall depending on the "-r" parameter. They can be 8, 16, 24, or 32 pixels wide (widths of 32 are only supported if "-r 32" is specified). The default page is 0; that is, the range U+0000 through U+00FF, inclusive.

The PNG file can be printed. It can also be edited with a graphics editor. An edited PNG file can then be re-converted into a GNU Unifont .hex file with the unipng2hex command.


Specify the input file. If not omitted, a Unifont .hex file is read from STDIN.
Specify the output file.
-p pagenum
Extract page pagenum from the .hex file. The default is Page 0 (Unicode range U+0000 through U+00FF). Note that "page" is not a standard Unicode term. It refers to an output bitmap graphics page of 16 by 16 code points.
-r rows
Specify the rows of pixels in the output glyphs. Valid values are 16, 24, and 32. The default is 16 pixel rows tall.
Print a help message of options and exit.


Sample usage:

unihex2png -i my_input_file.hex -o my_output_file.png


*.hex GNU Unifont font files


unihex2png was written by Andrew Miller, starting by converting Paul Hardy's unihex2bmp C program to Perl.


unihex2png is Copyright © 2007 Paul Hardy, © 2013 Andrew Miller.

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.


No known real bugs exist, but the optional pixel rows parameter is not yet supported by all other Unifont utilities. Use of glyphs taller than the default of 16 pixels is considered experimental. Currently unihex2png, unipng2hex, hexdraw, and hex2bdf tentatively support glyphs that are 16, 24, and 32 pixels tall.

Also, there is no extensive error checking on input files. If they're not in the format of the original GNU Unifont .hex file, all bets are off. Lines can be terminated either with line feed, or carriage return plus line feed.