⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 checkcodeimage.java

📁 版本信息:Jaoso新闻文章发布系统 0.9.1beta1 原POPTEN新闻发布系统现更名为Jaoso,不兼容popten,目前不提供popten升级Jaoso的程序.
💻 JAVA
字号:
package jaoso.framework.web.servlet;

import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGImageEncoder;

import org.apache.commons.lang.RandomStringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics2D;
import java.awt.Rectangle;
import java.awt.image.BufferedImage;

import java.io.IOException;
import java.io.OutputStream;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


/**
 *
 * @author edgeloner edgeloner@163.com
 *
 * To change the template for this generated type comment go to
 * Window>Preferences>Java>Code Generation>Code and Comments
 */
public class CheckCodeImage extends HttpServlet {

    //~ Static fields/initializers =============================================

    //==============================================================================

    /**
     * log
     */
    private static Log log = LogFactory.getLog(CheckCodeImage.class);

    //~ Constructors ===========================================================

    /**
     * default contructor
     *
     */
    public CheckCodeImage() {

    }

    //~ Methods ================================================================

    //==============================================================================

    /**
     * service
     * @param request  aa
     * @param response aa
     * @exception IOException ioexception
     * @exception ServletException exception
     */
    public final void service(final HttpServletRequest request,
        final HttpServletResponse response)
        throws ServletException, IOException {
    	response.setContentType("image/jpeg");
        //??栧?楅?忓嵆??勬牎楠岀??
        String checkCode = RandomStringUtils.randomNumeric(4);

        //?敾?浘
        BufferedImage image = new BufferedImage(50, 18,
                BufferedImage.TYPE_INT_RGB);
        Graphics2D g2d = image.createGraphics();
        Font font = new Font(g2d.getFont().getFontName(), Font.PLAIN, 18);
        g2d.setFont(font);
        g2d.setColor(Color.white);
        g2d.fill(new Rectangle(image.getWidth(), image.getHeight()));
        g2d.setColor(Color.darkGray);

        for (int i = 0; i < ((int) (Math.random() * 60) + 20); ++i) {

            g2d.fill(new Rectangle((int) (Math.random() * image.getWidth()),
                    (int) (Math.random() * image.getHeight()), 1, 1));
        }

        g2d.setPaint(Color.blue);
        g2d.drawString(checkCode, 2, 15); //(int) (Math.random() * 15) + 5
        g2d.dispose();

        //杈撳嚭?浘???
        try {

            //ImageIO.write(image, "gif", response.getOutputStream());
        	OutputStream out = response.getOutputStream();
            JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
            encoder.encode(image);
            out.flush();
        } catch (Exception ex) {

            log.info(ex);
        }

        request.getSession()
               .setAttribute("chkCode", checkCode);
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -