CHARSET_ENCODING "0" ENDPROPERTIES CHARS {$chrs} HEADER; fwrite($fp, $hdr); $swidth = $w * 90; $bwidth = ceil($w / 8); for ($char = 0; $char < $chrs; $char++) { $chrcode = idx2jis(intval($char)); fwrite($fp, "STARTCHAR " . dechex($chrcode) . "\n"); fwrite($fp, "ENCODING " . $chrcode . "\n"); fwrite($fp, "COMMENT CHRIDX " . intval($char) . "\n"); fwrite($fp, "SWIDTH {$swidth} 0\n"); fwrite($fp, "DWIDTH {$w} 0\n"); fwrite($fp, "BBX {$w} {$h} 0 -{$fd}\n"); fwrite($fp, "BITMAP\n"); for ($y = 0; $y < $h * $bwidth; $y++) { $v = ''; //printf("offset=%d, chr=%d\n",$char*($bwidth*$h)+$y,$byteArray[$char*($bwidth*$h)+$y]); for ($j = 1; $j < $bwidth; $j++) { $v .= sprintf("%02X", BitReverse($byteArray[$offset + $char * $skip + $char * ($bwidth * $h) + $y++])); } $v .= sprintf("%02X\n", BitReverse($byteArray[$offset + $char * $skip + $char * ($bwidth * $h) + $y])); fwrite($fp, $v); } // fwrite($fp, "00\n"); fwrite($fp, "ENDCHAR\n"); } fwrite($fp, "ENDFONT\n"); fclose($fp);
function byterev(&$val) { $val = sprintf("%02x", BitReverse(hexdec($val))); }