Java

本类阅读TOP10

·使用MyEclipse开发Struts框架的Hello World!(录像1)
·hibernate配置笔记
·AOP编程入门--Java篇
·linux下Tomcat 5.0.20 与 Apache 2 安装/集成/配置
·在win2003下整合了整合Tomcat5.5+ apache_2.0.53+ mod_jk_2.0.47.dll
·构建Linux下IDE环境--Eclipse篇
·Jsp 连接 mySQL、Oracle 数据库备忘(Windows平台)
·ASP、JSP、PHP 三种技术比较
·Tomcat5.5.9的安装配置
·AWT GUI 设计笔记(二)

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
用servlet实现在图片上动态加字

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

  去年圣诞最流行的就是送金砖了吧,就像下面的那张一样:)
  

  觉得挺好玩的,今天我就用servlet实现一个最简单的在图片上动态加字的程序。先看看成果吧:
  

  地址:http://www.myjavaserver.com/servlet/passant.imgproc.AddText?text=要显示的字

  只可惜放在老外的免费服务器上,不支持中文。

  下面是实现的代码:

package addtext;

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;

import java.awt.*;
import java.awt.image.*;
import javax.imageio.*;

public class AddText extends HttpServlet {
    static final String CONTENT_TYPE = "image/jpeg;charset=GB2312";//以图片格式输出
   
    public void init() throws ServletException {
    }
   
    public void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        doPost(request, response);
    }
   
    public void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
       
        response.setContentType(CONTENT_TYPE);
       
        String text = "";
        String imageFile = "yourpic.jpg";
       
        try {
            text = request.getParameter("text");
        }
        catch(Exception e) {
            e.printStackTrace();
        }
       
        if(text == null || text == "") text = "http://blog.csdn.net/passants";
       
        text = new String(text.getBytes("8859_1"), "GB2312"); //解决中文显示问题
       
        ServletOutputStream output = response.getOutputStream();
       
        BufferedImage image = ImageIO.read(new File(imageFile));
        Graphics g = image.getGraphics();
       
        g.setColor(new Color(Integer.parseInt("FF0000", 16)));
       
        Font mFont = new Font("宋体", Font.PLAIN, 16);
        g.setFont(mFont);
       
        g.drawString(text, 20, 20);
       
        ImageIO.write(image, "JPG", output);//输出jpg格式图片
       
        output.close();
    }
}

  这是个最简单的例子,还可以加入文字特效,如阴影、立体、浮雕等。使用Image IO API还可以对图片的压缩质量进行设定。另外,适当处理一下,可以用URL图片作为inputstream(如果知道某人的相册图片地址,就可以……hoho)。还有就是中文处理问题,要加一句代码(见coding)。


相关文章:
  Servlet实现动态图文结合输出
  URLInputStream
  Java Image IO APIs
  java中文问题详解




相关文章

相关软件