网站建设资讯

NEWS

网站建设资讯

java代码打点阵图 java打印矩阵

求助:java 如何获取bmp图片的点阵数据

图片文件中的数据,本身就是点阵。比如bmp格式的文件头偏移12h~15h是宽度,偏移16h~19h是高度,图像部分的数据,就是按帆旁这尺寸记录着每个像素点...。

华安ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:18980820575(备注:SSL证书合作)期待与您的合作!

建议装个UltraEdit工具,洞蠢对文件的结构进行分析,或在态颤橡网上搜搜关于图像数据结构方面的资料,自然,你就对图片的数据心中了然的了。

谁会用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; i weith; i++) {

for (int j = 0; j height; j++) {

if (shape.contains(i, j)) {

view[i][j] = true;

} else {

view[i][j] = false;

}

}

}

for (int j = 0; j height; j++) {

for (int i = 0; i weith; i++) {

if (view[i][j]) {

System.out.print("*");

} else {

System.out.print(" ");

}

}

System.out.println();

}

} catch (Exception e) {

e.printStackTrace();

}

}

}

求程序画的 点阵渐开线(点阵螺旋线)代码 啥语言都可 最好是JAVA C# AS3 等 当然其它语言也可以 谢谢

用Java语言画的点阵渐开线代码如下

import java.awt.Graphics;

import java.util.ArrayList;

import java.util.List;

import javax.swing.JFrame;

public class Involute extends JFrame{

Involute(){

super("点阵渐开线");

setSize(400, 400);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

setLocationRelativeTo(null);

setVisible(true);

}

public void paint(Graphics g){

super.paint(g);

double alfa=10;

double r=10;

锋让double theta=0;

ListInteger lx=new ArrayListInteger();

ListInteger ly=new ArrayListInteger();

int CenterX=this.getWidth()/2; 

int CenterY=this.getHeight()/2;

for(int i=0;i60*2;i++){

int x=CenterX+(int)(r*Math.cos((theta+alfa)*Math.PI/180)+(theta+alfa)*Math.PI/180*r*Math.sin((theta+alfa)*Math.PI/180));

lx.add(x);

int y=CenterY-(int)(r*Math.sin((theta+alfa)*Math.PI/180)-(theta+alfa)*Math.PI/180*r*Math.cos((theta+alfa)*Math.PI/180));

ly.add(y);

theta=theta+6;

银卖局 }

for(int i=0;i60*2;i++){

g.fillOval(lx.get(i), ly.get(i), 5, 5);

}

}

public static void main(String[] args) {

配旁new Involute();

}

}

运行结果

请教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;

}

}

假设汉字尺袭库文件以“hzk16”命名,存放在同一文件夹中。你自己找不到16点阵汉字库时,找个UCDOS下载,从中能找到的。文件名就是HZK16。


网站栏目:java代码打点阵图 java打印矩阵
网站URL:http://njwzjz.com/article/ddpgjhd.html