1#!/usr/bin/perl 2 3# convert a linux console font (8x16 format) to a font definition 4# suitable for processing with LibVNCServer 5 6#if($#ARGV == 0) { exit; } 7 8foreach $i (@ARGV) { 9 $fontname = $i; 10 $fontname =~ s/\.fnt$//; 11 $fontname =~ s/^.*\///g; 12 $fontname =~ y/+/_/; 13 14 print STDERR "$i -> $fontname\n"; 15 16 open IN, "<$i"; 17 print STDERR read(IN,$x,4096); 18 close(IN); 19 20 open OUT, ">$fontname.h"; 21 print OUT "unsigned char ".$fontname."FontData[4096+1]={"; 22 for($i=0;$i<4096;$i++) { 23 if(($i%16)==0) { 24 print OUT "\n"; 25 } 26 printf OUT "0x%02x,", ord(substr($x,$i)); 27 } 28 29 print OUT "\n};\nint ".$fontname."FontMetaData[256*5+1]={\n"; 30 for($i=0;$i<256;$i++) { 31 print OUT ($i*16).",8,16,0,0,"; 32 } 33 34 print OUT "};\nrfbFontData ".$fontname."Font = { ".$fontname."FontData, " 35 .$fontname."FontMetaData };\n"; 36 37 close OUT; 38} 39