java代码打点阵图 java 码点

java 二维码 点阵 16进制二维码就是个图片 。。。
你看看java的image类,就能获取到点阵数组了 。。。
求助:java 如何获取bmp图片的点阵数据图片文件中的数据,本身就是点阵 。比如bmp格式的文件头偏移12h~15h是宽度,偏移16h~19h是高度 , 图像部分的数据,就是按这尺寸记录着每个像素点... 。
建议装个UltraEdit工具,对文件的结构进行分析 , 或在网上搜搜关于图像数据结构方面的资料,自然,你就对图片的数据心中了然的了 。
请教JAVA牛人,怎么把通过JAVA查一个汉字的数字点阵以前DOS时代搞过这个 。如果你能拿到GB_2312字库,就能做到 。将Unicode码转变为GB码,然后高字节-0xA0,乘以94 , 再加低字节-0xA0,这个结果乘以32,去字库文件里从头偏移这么多,读32字节,按位每16位一行画点就是汉字图形 。
图形好像是翻转的,时间长了具体记不清了 。
试验了一下,记错了一点 。是减手0xA1 。下面的这个类的静态方法getDotMap获取一个字的32字节的点阵 。每位为1时应该绘制 , 0时不绘制 。
public class ChineseReader extends JFrame{
private static byte[][] dotMap;
static{
try{
FileInputStream dotMapFile=new FileInputStream("hzk16");
dotMap=new byte[dotMapFile.available()][32];
for(int i=0;idotMap.length;i){
dotMapFile.read(dotMap[i]);
}
dotMapFile.close();
}
catch(FileNotFoundException ex){
ex.printStackTrace();
}
catch(IOException ex){
ex.printStackTrace();
}
}
public static short[] getDotMap(char c){
short[] buffer=new short[16];
int gbCode=Charset.forName("GB2312").encode(String.valueOf(c)).getShort()0xFFFF;
ByteBuffer buf=ByteBuffer.wrap(dotMap[((gbCode8)*94 (gbCode0xFF))-0x3BBF]);
for(int i=0;i16;i){
buffer[i]=buf.getShort();
}
return buffer;
【java代码打点阵图 java 码点】}
}
假设汉字库文件以“hzk16”命名,存放在同一文件夹中 。你自己找不到16点阵汉字库时,找个UCDOS下载,从中能找到的 。文件名就是HZK16 。
谁会用java输出点阵格式的名字?。?/h2>下面java代码打点阵图的方法可以实现java代码打点阵图,它可以按照指定的字体将字符串转换为点阵的2维数组:
import java.awt.Font;
import java.awt.Shape;
import java.awt.font.FontRenderContext;
import java.awt.font.GlyphVector;
import java.awt.geom.AffineTransform;
import javax.swing.plaf.metal.DefaultMetalTheme;
public class FontTest {
public static void main(String[] args) {
try {
DefaultMetalTheme theme = new DefaultMetalTheme();
Font font = new Font(theme.getWindowTitleFont().getFamily(), Font.PLAIN, 30); // 创建字体
AffineTransform at = new AffineTransform();
FontRenderContext frc = new FontRenderContext(at, true, true);
GlyphVector gv = font.createGlyphVector(frc, "ABC a$@#*^"); // 要显示的文字
Shape shape = gv.getOutline(5, 30);
int weith = 200; // 显示面板的宽
int height = 40; // 显示面板的高
boolean[][] view = new boolean[weith][height];
for (int i = 0; iweith; i) {
for (int j = 0; jheight; j) {
if (shape.contains(i, j)) {
view[i][j] = true;
} else {
view[i][j] = false;
}
}
}
for (int j = 0; jheight; j) {
for (int i = 0; iweith; i) {
if (view[i][j]) {
System.out.print("*");
} else {
System.out.print(" ");
}
}
System.out.println();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
java代码打点阵图的介绍就聊到这里吧,感谢你花时间阅读本站内容 , 更多关于java 码点、java代码打点阵图的信息别忘了在本站进行查找喔 。

    推荐阅读