public static BufferedImage GetImage(String checkrnd) {
BufferedImage image = new BufferedImage(12 * (checkrnd.length()+1),
24, BufferedImage.TYPE_INT_RGB); try {
// File out = new File("d:\\image.jpg");
Graphics g = image.getGraphics();
g.setColor(new Color(38,80,166));
g.fillRect(0, 0, 12 * (checkrnd.length()+1), 24);
g.setColor(Color.WHITE);
Font font = g.getFont().deriveFont((float)20);
g.setFont(font);
g.drawString(checkrnd, 6, 20);
g.dispose();
//ImageIO.write(image, "JPEG", out); }
catch (Exception e) {
e.printStackTrace();
}
return image;
}-----------------
jsp里这么调用
<%
String checkrnd;
long seed=0;
int rnd,rnd2,rnd3,rnd4;
seed=new Date().getTime();
Random rand=new Random(seed);
rnd=rand.nextInt(10);
rnd2=rand.nextInt(10);
rnd3=rand.nextInt(10);
rnd4=rand.nextInt(10);
checkrnd=String.valueOf(rnd)+String.valueOf(rnd2)+String.valueOf(rnd3)+String.valueOf(rnd4);
BufferedImage image = StringUtil.GetImage(checkrnd); checkrnd = StringUtil.encodeBase64(checkrnd);
Cookie cookiecheckrnd = new Cookie("cookiecheckrnd",checkrnd);
response.addCookie(cookiecheckrnd); // Send back image
ServletOutputStream sos = response.getOutputStream();
ImageIO.write(image, "JPEG", sos);
sos.close();
%>
有没其他办法,不用imageio类
BufferedImage image = new BufferedImage(12 * (checkrnd.length()+1),
24, BufferedImage.TYPE_INT_RGB); try {
// File out = new File("d:\\image.jpg");
Graphics g = image.getGraphics();
g.setColor(new Color(38,80,166));
g.fillRect(0, 0, 12 * (checkrnd.length()+1), 24);
g.setColor(Color.WHITE);
Font font = g.getFont().deriveFont((float)20);
g.setFont(font);
g.drawString(checkrnd, 6, 20);
g.dispose();
//ImageIO.write(image, "JPEG", out); }
catch (Exception e) {
e.printStackTrace();
}
return image;
}-----------------
jsp里这么调用
<%
String checkrnd;
long seed=0;
int rnd,rnd2,rnd3,rnd4;
seed=new Date().getTime();
Random rand=new Random(seed);
rnd=rand.nextInt(10);
rnd2=rand.nextInt(10);
rnd3=rand.nextInt(10);
rnd4=rand.nextInt(10);
checkrnd=String.valueOf(rnd)+String.valueOf(rnd2)+String.valueOf(rnd3)+String.valueOf(rnd4);
BufferedImage image = StringUtil.GetImage(checkrnd); checkrnd = StringUtil.encodeBase64(checkrnd);
Cookie cookiecheckrnd = new Cookie("cookiecheckrnd",checkrnd);
response.addCookie(cookiecheckrnd); // Send back image
ServletOutputStream sos = response.getOutputStream();
ImageIO.write(image, "JPEG", sos);
sos.close();
%>
有没其他办法,不用imageio类
解决方案 »
- JTree删除结点的问题
- 求吴进java语法基础中28页和29页练习答案http://wenku.baidu.com/view/4a687d86b9d528ea81c77923.html
- 串口数据经常收不全,应该怎么办?
- JList列表显示用户问题
- jtable内绑定jcombox 产生的焦点问题 急求解
- 为什么第一个ID 只能为数字?
- java 求解 !急!!!!!!!
- tcp的socket求救!
- 为什么在用MX打开JSP页面文件时,中文字符老是出现乱码,而页面参数却是字体里是西文字符。
- Visual C++ 和 C/C++ 有什么区别啊?
- java 3d的问题
- 【2个问题! 100% 简单】
在tomcat上工作良好
但换到weblogic上后,显示图片的地方现在显示为一个"X",使用了各种办法调试:
1. 使用try catch捕捉错误,结果 控制台无一提示
2. 使用System.out.println()语句 在每句执行语句后都打印一个字符串到控制台,结果所有的语句都被打出
3. 我尝试将StringUtil.GetImage(checkrnd);方法生成的图片直接写到硬盘上,结果硬盘上确实有此图片,其内容与预期的完全一样
4. 我尝试从硬盘装载一张图片到内存,然后不加处理直接显示,结果 原本该显示图片的地方还是显示一个"X"
5. 我尝试将 从硬盘装载的文件不加处理直接写回硬盘, 结果 写回去的文件与装载的文件完全一致
6. 我尝试寻找一把足以毁掉眼前那个烂东西的武器……谁能帮帮我
注:编程的环境是tomcat4+jdk1.4, 实际运行环境是weblogic6.1和7+jdk1.3
上述的6种尝试均在weblogic6.1和7+jdk1.31上执行,我确信没有使用到不属于jdk1.3的东西
我记得用Response.out 就可以输出了啊,好象还要flush一下
你把你需要生成的*.jpg解析到你的图片生成的程序上就ok了
http://www.javaresearch.org/article/showarticle.jsp?column=106&thread=12602这样可以省去你动态绘制图片的步骤