You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
libtdevnc/consolefont2c.pl

39 lines
850 B

#!/usr/bin/perl
# convert a linux console font (8x16 format) to a font definition
# suitable for processing with LibVNCServer
#if($#ARGV == 0) { exit; }
foreach $i (@ARGV) {
$fontname = $i;
$fontname =~ s/\.fnt$//;
$fontname =~ s/^.*\///g;
$fontname =~ y/+/_/;
print STDERR "$i -> $fontname\n";
open IN, "<$i";
print STDERR read(IN,$x,4096);
close(IN);
open OUT, ">$fontname.h";
print OUT "unsigned char ".$fontname."FontData[4096+1]={";
for($i=0;$i<4096;$i++) {
if(($i%16)==0) {
print OUT "\n";
}
printf OUT "0x%02x,", ord(substr($x,$i));
}
print OUT "\n};\nint ".$fontname."FontMetaData[256*5+1]={\n";
for($i=0;$i<256;$i++) {
print OUT ($i*16).",8,16,0,0,";
}
print OUT "};\nrfbFontData ".$fontname."Font = { ".$fontname."FontData, "
.$fontname."FontMetaData };\n";
close OUT;
}