有个问题请教一下大家,求大神解决
登录页面中的那个验证码怎么编码啊,是个按钮吗?如果不是,那是什么啊?
程序代码:
import java.awt.image.BufferedImage; import import import import java.util.HashMap; import java.util.Map; import java.util.Random; import com.sun.image.codec.jpeg.JPEGCodec; import com.sun.image.codec.jpeg.JPEGImageEncoder; public class ImageUtils { private static String str = "1234567890QWERTYUIOPASDFGHJKLZXCVBNM"; private static char[] chars = str.toCharArray(); private static int WIDTH = 140; private static int HEIGHT = 40; private static int SIZE = 4; private static int LINES = 6; private static int FONT_SIZE = 40; public static Map<String, BufferedImage> getImage() { BufferedImage image = new BufferedImage(WIDTH, HEIGHT, BufferedImage.TYPE_INT_RGB); Graphics g = image.createGraphics(); g.setColor(Color.GRAY); g.fillRect(0, 0, WIDTH, HEIGHT); StringBuffer bf = new StringBuffer(); Random r = new Random(); for (int i = 0; i < SIZE; i++) { char c = chars[r.nextInt(chars.length)]; g.setColor(getColor()); g.setFont(new Font(null,Font.BOLD,FONT_SIZE)); g.drawString("" + c, i * WIDTH / SIZE, HEIGHT / 10 * 9); bf.append(c); } for (int i = 0; i < LINES; i++) { g.setColor(getColor()); g.drawLine(r.nextInt(WIDTH), r.nextInt(HEIGHT), r.nextInt(WIDTH), r.nextInt(HEIGHT)); } Map<String, BufferedImage> map = new HashMap<String, BufferedImage>(); map.put(bf.toString(), image); return map; } private static Color getColor() { Random r = new Random(); return new Color(r.nextInt(255), r.nextInt(255), r.nextInt(255)); } public static InputStream imageToStream(BufferedImage image) throws Exception{ ByteArrayOutputStream bos = new ByteArrayOutputStream(); JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(bos); encoder.encode(image); byte[] bytes = bos.toByteArray(); InputStream is = new ByteArrayInputStream(bytes); return is; } }这段代码能可以生成验证码,希望可以帮你