<%@ page language="java" import="java.io.*,java.awt.*,java.awt.image.*"%>
<%@ page contentType="text/html;charset=gb2312"%>
<%
String s="unkown code";
if(request.getParameter("code")!=null)
s=request.getParameter("code");//这里得到传过来的参数
response.reset();
response.resetBuffer();
response.flushBuffer();
java.awt.Image img=java.awt.Toolkit.getDefaultToolkit().getImage("C:\\1.jpg");//获取产品的图片
MediaTracker mt=new MediaTracker(null);
mt.addImage(img,0);
try{mt.waitForAll();}catch(Exception e){out.println(e.toString());}//装载图片
response.setContentType("image/JPEG");
BufferedImage bi=new BufferedImage(img.getWidth(null),img.getHeight(null),BufferedImage.TYPE_INT_RGB);
OutputStream fos=new FileOutputStream("C:\\1_1.jpg");//写上文字后另存的文件名
Graphics2D g2d=bi.createGraphics();
g2d.drawImage(img,0,0,null);//输出图片在BufferedImage
g2d.setColor(Color.black);
g2d.setFont(new Font("",Font.BOLD,20));
g2d.drawString(s,100,100);//在图片上写文字,写的位置你可以自己调整
com.sun.image.codec.jpeg.JPEGImageEncoder jie=com.sun.image.codec.jpeg.JPEGCodec.createJPEGEncoder(fos);
jie.encode(bi);//输出
fos.close();
fos=null;
%>
通过这些代码你就可以在原始图片C:\1.jpg上写上产品code,然后另存为C:\1_1.jpg文件了,试试吧

解决方案 »

  1.   

    上面的代码有些小问题,就是如果MediaTracker没有具体的载体的话,img不能一次装载
    而且传递的信息要做一点中文处理,改了一点:
    <%@ page language="java" import="java.io.*,java.awt.*,java.awt.image.*"%>
    <%@ page contentType="text/html;charset=gb2312"%>
    <%
    String s="unkown code";
    if(request.getParameter("code")!=null)
    s=new String(request.getParameter("code").toString().getBytes("ISO8859_1"),"gb2312");//这里做了接收的中文处理,在传的时候如果是中文则需要进行java.net.URLEncoder.encode("中文")的编码,如果是繁体,将gb2312改为big5即可
    java.awt.Image img=java.awt.Toolkit.getDefaultToolkit().getImage("C:\\1.jpg");
    MediaTracker mt=new MediaTracker(new java.awt.Frame());//构建一个Frame做载体
    mt.addImage(img,0);
    try{mt.waitForID(0);}catch(Exception e){}
    int width=img.getWidth(null);
    int height=img.getHeight(null);
    response.setContentType("image/JPEG");
    BufferedImage bi=new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB);
    OutputStream fos=new FileOutputStream("C:\\1_1.jpg");
    Graphics2D g2d=bi.createGraphics();
    g2d.drawImage(img,0,0,null);
    g2d.setColor(Color.black);
    g2d.setFont(new Font("",Font.BOLD,20));
    g2d.drawString(s,100,100);
    com.sun.image.codec.jpeg.JPEGImageEncoder jie=com.sun.image.codec.jpeg.JPEGCodec.createJPEGEncoder(fos);
    jie.encode(bi);
    fos.close();
    fos=null;
    %>
      

  2.   

    已經解決了,謝謝大家,有其是beyond_xiruo(亂談情)!