如何用JAVA画一张JPG的图,上面有线条和文字,谢谢! 到sun网站上去搜索一下有一个这方面的工具包可以打开现在基本都存在的图形格式文件还有很例子具体是什么我忘记的了。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 那 BMP怎么画呀还有呀,怎么把二进制的图片直接导入程序呀有没有谁能给小弟个例子? zhou1977(短笛) ; 谢谢!既然很简单,能否给个例子,要求画好后,保存为JPG或PNG,感激不尽! 用jai,取下载装一个用下面的代码,改一改// BufferedImage image=new BufferedImage(drawpanel.getWidth(),drawpanel.getHeight(),BufferedImage.TYPE_3BYTE_BGR);// drawpanel.paintAll(image.createGraphics());// try// {// com.sun.media.jai.codec.ImageCodec.createImageEncoder("JPEG",new FileOutputStream ("d:\\cwAB007131.jpg"), null).encode(image);// }// catch (Exception ee){} to: HJJH(Thunderbird) 非常感激,可是看不大懂,又都是注解,能否给各完整的APPLET例子,可以编译的,JAI是一个软件吗?我很急的,别笑话我,谢谢了! to: HJJH(Thunderbird) 非常感激,可是看不大懂,又都是注解,能否给各完整的APPLET例子,可以编译的,JAI是一个软件吗?我很急的,别笑话我,谢谢了! 你等一下,我把软件发给你,你的mail? 给你的信都退回来了!我也没有办法jai 在java.sun.com可以下载下面是一个完整代码package bgi.mumerdisplay;import java.awt.*;import java.awt.geom.Line2D;import java.io.*;import java.lang.*;import java.awt.event.*;import java.awt.image.*;import javax.swing.*;import java.util.*;public class DrawPanel extends JPanel{ String filename = new String(); Vector queryStart = new Vector(); Vector sbjctStart = new Vector(); Vector queryEnd = new Vector(); Vector sbjctEnd = new Vector(); Vector overLap = new Vector(); Vector sbjctRev = new Vector(); int xMax, yMax; int MUM_xStart,MUM_yStart,MUM_yEnd; int MUM_oneAixbp = 100; public DrawPanel() { this.setBackground(Color.black); //this.setPreferredSize(new Dimension(50,50)); } public void paintComponent(Graphics g) { super.paintComponent(g); Graphics2D g2d=(Graphics2D)g; g2d.setColor(new Color(113,101,250)); g2d.setStroke(new BasicStroke(8, BasicStroke.CAP_ROUND, BasicStroke.JOIN_MITER)); g2d.drawLine(MUM_xStart,MUM_yStart,Math.round(xMax / MUM_oneAixbp) + MUM_xStart,MUM_yStart); g2d.drawLine(MUM_xStart,MUM_yEnd,Math.round(yMax / MUM_oneAixbp) + MUM_xStart,MUM_yEnd); int j = MUM_xStart + 10; g2d.setColor(Color.white); g2d.setStroke(new BasicStroke(1, BasicStroke.CAP_ROUND, BasicStroke.JOIN_MITER)); while(j <= (Math.round(xMax / MUM_oneAixbp) + MUM_xStart)) { if(j % 10 == 0) { g2d.drawLine(j, MUM_yStart - 6, j, MUM_yStart); } if((j-10) % 50 == 0) { g2d.drawLine(j, MUM_yStart - 9, j, MUM_yStart); g2d.drawString((j-10)*MUM_oneAixbp+"", j-2, MUM_yStart - 12); } j ++; } j = MUM_xStart + 10; while(j <= (Math.round(yMax / MUM_oneAixbp) + MUM_xStart)) { if(j % 10 == 0) { g2d.drawLine(j, MUM_yEnd + 6, j, MUM_yEnd); } if((j-10) % 50 == 0) { g2d.drawLine(j, MUM_yEnd + 9, j, MUM_yEnd); g2d.drawString(((j-10)*MUM_oneAixbp)+"", j-2, MUM_yEnd + 26); } j ++; } g2d.setStroke(new BasicStroke(5, BasicStroke.CAP_ROUND, BasicStroke.JOIN_MITER)); int qs,qe,ss,se,lap; for(int i = 0; i < queryEnd.size(); i ++) { lap = 0; if(Integer.parseInt(overLap.get(i).toString()) < 0) { lap = Integer.parseInt(overLap.get(i).toString()); } qs = Math.round((Integer.parseInt(queryStart.get(i).toString())+lap) / MUM_oneAixbp)+MUM_xStart; qe = Math.round(Integer.parseInt(queryEnd.get(i).toString()) / MUM_oneAixbp)+MUM_xStart; ss = Math.round((Integer.parseInt(sbjctStart.get(i).toString())+lap) / MUM_oneAixbp)+MUM_xStart; se = Math.round(Integer.parseInt(sbjctEnd.get(i).toString()) / MUM_oneAixbp)+MUM_xStart; if(i % 2 == 0) { g2d.setColor(Color.red); } else { g2d.setColor(Color.green); } g2d.setStroke(new BasicStroke(1, BasicStroke.CAP_ROUND, BasicStroke.JOIN_MITER)); g2d.fillRect(qs,MUM_yStart-3,qe-qs,7); g2d.fillRect(ss,MUM_yEnd-3,se-ss,7); g2d.drawLine(qs,MUM_yStart,ss,MUM_yEnd); g2d.drawLine(qe,MUM_yStart,se,MUM_yEnd); if(Integer.parseInt(sbjctRev.get(i).toString()) == 0) { g2d.setColor(Color.yellow); g2d.fillRect(ss,MUM_yEnd-3,se-ss,7); } } } public void setOneAixbp(int aix) { MUM_oneAixbp = aix; this.repaint(); } public void setFileName(String s) throws Exception { this.filename = s; queryStart.clear(); queryEnd.clear(); sbjctStart.clear(); sbjctEnd.clear(); this.readMUMerFile(); } private void readMUMerFile() throws Exception { int mum = 0; BufferedReader br=new BufferedReader(new FileReader(filename)); int line=0; int N = 0; while(br.ready()) { String s=br.readLine(); int consistent = s.indexOf(">Consistent"); int other = s.indexOf(">Other"); int start = s.indexOf("Start1"); int b = s.indexOf("1"); if(consistent == 0) { mum = 1; } if(other == 0) { mum = 0; } if(mum == 1) { if((start == -1) && (b != -1)) { StringTokenizer st = new StringTokenizer(s); int tokenIndex=0; while(st.hasMoreTokens()) { String token=st.nextToken(); switch(tokenIndex) { case 0: queryStart.addElement(token);break; case 1: sbjctStart.addElement(token);break; case 3: overLap.addElement(token);break; case 6: { queryEnd.addElement(token); N ++; break; } case 7: sbjctEnd.addElement(token);break; case 9: sbjctRev.addElement(token);break; default: break; } tokenIndex++; if(tokenIndex > 9) { break; } } } } } br.close(); int[] xend = new int[N]; int[] yend = new int[N]; for(int i = 0; i < queryEnd.size(); i ++) { xend[i] = Integer.parseInt(queryEnd.get(i).toString()); yend[i] = Integer.parseInt(sbjctEnd.get(i).toString()); } Arrays.sort(xend); Arrays.sort(yend); xMax = xend[N-1]; yMax = yend[N-1]; MUM_xStart = 10; MUM_yStart = 200; MUM_yEnd = 300; this.repaint(); } public int getAixbp() { return MUM_oneAixbp; } public int getXWidth() { int len = (int)(xMax / MUM_oneAixbp); return len; } public int getYWidth() { int len = (int)(yMax / MUM_oneAixbp); return len; } public int getxMax() { return xMax; }} stringBuffer为什么没有trim方法 帮我分析一个小程序 请问怎么找到jfreechart里面存放坐标的方法!! 怎样运用排序 接口类Comparable的compareTo方法进行排序, 能举一个实例说明吗? 水晶报表为什么在我的java程序中显示的是乱码,请各位大侠帮帮菜小弟!! 求一简单java游戏TicTacToe制作思路,急! java高手请进 请问jbuilder6的注册码是多少? 在线等待,怎么一次获取多个checkbox的值? Applet下的类都必须在同一个包中吗? 有谁知道JAVABOOK包是什么啊? 请问关于vc和java进行socket通讯的问题
还有呀,怎么把二进制的图片直接导入程序呀
有没有谁能给小弟个例子?
,感激不尽!
// BufferedImage image=new BufferedImage(drawpanel.getWidth(),drawpanel.getHeight(),BufferedImage.TYPE_3BYTE_BGR);
// drawpanel.paintAll(image.createGraphics());
// try
// {
// com.sun.media.jai.codec.ImageCodec.createImageEncoder("JPEG",new FileOutputStream ("d:\\cwAB007131.jpg"), null).encode(image);
// }
// catch (Exception ee){}
非常感激,可是看不大懂,又都是注解,能否给各完整的APPLET例子,可以编译的,JAI是一个软件吗?我很急的,别笑话我,谢谢了!
非常感激,可是看不大懂,又都是注解,能否给各完整的APPLET例子,可以编译的,JAI是一个软件吗?我很急的,别笑话我,谢谢了!
下面是一个完整代码package bgi.mumerdisplay;
import java.awt.*;
import java.awt.geom.Line2D;
import java.io.*;
import java.lang.*;
import java.awt.event.*;
import java.awt.image.*;
import javax.swing.*;
import java.util.*;public class DrawPanel extends JPanel
{
String filename = new String();
Vector queryStart = new Vector();
Vector sbjctStart = new Vector();
Vector queryEnd = new Vector();
Vector sbjctEnd = new Vector();
Vector overLap = new Vector();
Vector sbjctRev = new Vector();
int xMax, yMax;
int MUM_xStart,MUM_yStart,MUM_yEnd;
int MUM_oneAixbp = 100;
public DrawPanel()
{
this.setBackground(Color.black);
//this.setPreferredSize(new Dimension(50,50));
}
public void paintComponent(Graphics g)
{
super.paintComponent(g);
Graphics2D g2d=(Graphics2D)g;
g2d.setColor(new Color(113,101,250));
g2d.setStroke(new BasicStroke(8, BasicStroke.CAP_ROUND, BasicStroke.JOIN_MITER));
g2d.drawLine(MUM_xStart,MUM_yStart,Math.round(xMax / MUM_oneAixbp) + MUM_xStart,MUM_yStart);
g2d.drawLine(MUM_xStart,MUM_yEnd,Math.round(yMax / MUM_oneAixbp) + MUM_xStart,MUM_yEnd);
int j = MUM_xStart + 10;
g2d.setColor(Color.white);
g2d.setStroke(new BasicStroke(1, BasicStroke.CAP_ROUND, BasicStroke.JOIN_MITER));
while(j <= (Math.round(xMax / MUM_oneAixbp) + MUM_xStart))
{
if(j % 10 == 0)
{
g2d.drawLine(j, MUM_yStart - 6, j, MUM_yStart);
}
if((j-10) % 50 == 0)
{
g2d.drawLine(j, MUM_yStart - 9, j, MUM_yStart);
g2d.drawString((j-10)*MUM_oneAixbp+"", j-2, MUM_yStart - 12);
}
j ++;
}
j = MUM_xStart + 10;
while(j <= (Math.round(yMax / MUM_oneAixbp) + MUM_xStart))
{
if(j % 10 == 0)
{
g2d.drawLine(j, MUM_yEnd + 6, j, MUM_yEnd);
}
if((j-10) % 50 == 0)
{
g2d.drawLine(j, MUM_yEnd + 9, j, MUM_yEnd);
g2d.drawString(((j-10)*MUM_oneAixbp)+"", j-2, MUM_yEnd + 26);
}
j ++;
}
g2d.setStroke(new BasicStroke(5, BasicStroke.CAP_ROUND, BasicStroke.JOIN_MITER));
int qs,qe,ss,se,lap;
for(int i = 0; i < queryEnd.size(); i ++)
{
lap = 0;
if(Integer.parseInt(overLap.get(i).toString()) < 0)
{
lap = Integer.parseInt(overLap.get(i).toString());
}
qs = Math.round((Integer.parseInt(queryStart.get(i).toString())+lap) / MUM_oneAixbp)+MUM_xStart;
qe = Math.round(Integer.parseInt(queryEnd.get(i).toString()) / MUM_oneAixbp)+MUM_xStart;
ss = Math.round((Integer.parseInt(sbjctStart.get(i).toString())+lap) / MUM_oneAixbp)+MUM_xStart;
se = Math.round(Integer.parseInt(sbjctEnd.get(i).toString()) / MUM_oneAixbp)+MUM_xStart;
if(i % 2 == 0)
{
g2d.setColor(Color.red);
}
else
{
g2d.setColor(Color.green);
}
g2d.setStroke(new BasicStroke(1, BasicStroke.CAP_ROUND, BasicStroke.JOIN_MITER));
g2d.fillRect(qs,MUM_yStart-3,qe-qs,7);
g2d.fillRect(ss,MUM_yEnd-3,se-ss,7);
g2d.drawLine(qs,MUM_yStart,ss,MUM_yEnd);
g2d.drawLine(qe,MUM_yStart,se,MUM_yEnd);
if(Integer.parseInt(sbjctRev.get(i).toString()) == 0)
{
g2d.setColor(Color.yellow);
g2d.fillRect(ss,MUM_yEnd-3,se-ss,7);
}
}
}
public void setOneAixbp(int aix)
{
MUM_oneAixbp = aix;
this.repaint();
}
public void setFileName(String s) throws Exception
{
this.filename = s; queryStart.clear();
queryEnd.clear();
sbjctStart.clear();
sbjctEnd.clear();
this.readMUMerFile();
}
private void readMUMerFile() throws Exception
{
int mum = 0;
BufferedReader br=new BufferedReader(new FileReader(filename));
int line=0;
int N = 0;
while(br.ready())
{
String s=br.readLine();
int consistent = s.indexOf(">Consistent");
int other = s.indexOf(">Other");
int start = s.indexOf("Start1");
int b = s.indexOf("1");
if(consistent == 0)
{
mum = 1;
}
if(other == 0)
{
mum = 0;
}
if(mum == 1)
{
if((start == -1) && (b != -1))
{
StringTokenizer st = new StringTokenizer(s);
int tokenIndex=0;
while(st.hasMoreTokens())
{
String token=st.nextToken();
switch(tokenIndex)
{
case 0: queryStart.addElement(token);break;
case 1: sbjctStart.addElement(token);break;
case 3: overLap.addElement(token);break;
case 6:
{
queryEnd.addElement(token);
N ++;
break;
}
case 7: sbjctEnd.addElement(token);break;
case 9: sbjctRev.addElement(token);break;
default: break;
}
tokenIndex++;
if(tokenIndex > 9)
{
break;
}
}
}
}
}
br.close();
int[] xend = new int[N];
int[] yend = new int[N];
for(int i = 0; i < queryEnd.size(); i ++)
{
xend[i] = Integer.parseInt(queryEnd.get(i).toString());
yend[i] = Integer.parseInt(sbjctEnd.get(i).toString());
}
Arrays.sort(xend);
Arrays.sort(yend);
xMax = xend[N-1];
yMax = yend[N-1];
MUM_xStart = 10;
MUM_yStart = 200;
MUM_yEnd = 300; this.repaint();
}
public int getAixbp()
{
return MUM_oneAixbp;
}
public int getXWidth()
{
int len = (int)(xMax / MUM_oneAixbp);
return len;
}
public int getYWidth()
{
int len = (int)(yMax / MUM_oneAixbp);
return len;
}
public int getxMax()
{
return xMax;
}
}