某用户系统遗留数据, 使用了自定义的汉字库来显示朝鲜文字, 需要迁移到新的系统。所以写了个工具让老师自己根据字形点阵图形来录入文字.这样就可以通过录入的数据找到变形字代码和标准UTF-8字型代码之间的关系,并实现系统到开放平台的迁移。
以下是部分代码,希望对大家有用。
//根据字节数组来输出点阵
public int[] getIntFromByte(byte[] byteparm){
int[] tmpint = new int[byteparm.length];
for(int i=0;i tmpint[i]= byteparm[i]&0x000000ff;
}
return tmpint;
}
public void viewmatrix(int[] buf ){
int i16;
char string[]= new char[5];
for(int i=0;i<32;i+=2){ //两位为一行 32, 一行16位,共16行。形成16*16 的字体点阵。
i16 = buf[i]<<8 |buf[i+1]; //16位整形值
char[] tmpc = Integer.toHexString(i16).toCharArray(); //
for(int j=0;j string[j] = tmpc[j];
}
for(int j=0;j<4;j++){
String tmp = "" + string[j];
string[j]=tmp.toUpperCase().charAt(0);
}
System.out.print(string);
for(int j=0;j<16;j++) { //输出一行点阵
//如何确定的输出点或者不输出呢? 二进制10000 0000 0000 0000 右移位和 i16相与来判断i16位是否为0
if((i16 & (0x8000>>j))!=0)
System.out.printf("⑩");
else
System.out.printf(" ");
}
System.out.printf("\n");
}
}
//显示所有16hzk 里的汉字
public void viewall(String filename){
try{
java.io.File file = new java.io.File(filename);
java.io.RandomAccessFile fins = new java.io.RandomAccessFile(file,"r");
byte[] bf = new byte[32];
int i = 0;
while(fins.read(bf)==32){
int[] iuf = this.getIntFromByte(bf);
this.viewmatrix(iuf);
int py = i*32;
//System.out.println("---------------------------"+(tb.get(Long.toHexString(py))));
i++;
}
fins.close();
}catch(Exception e){
}
}
阅读(1950) | 评论(1) | 转发(0) |