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

📄 captchabean.java

📁 一个为 Java/J2EE生成的最简化CAPTCHA的框架
💻 JAVA
字号:
package nl.captcha;import java.awt.AlphaComposite;import java.awt.Color;import java.awt.Graphics2D;import java.awt.image.BufferedImage;import nl.captcha.backgrounds.BackgroundProducer;import nl.captcha.backgrounds.TransparentBackgroundProducer;import nl.captcha.gimpy.GimpyRenderer;import nl.captcha.noise.NoiseProducer;import nl.captcha.text.producer.TextProducer;import nl.captcha.text.renderer.DefaultWordRenderer;import nl.captcha.text.renderer.WordRenderer;/** * Simple CAPTCHA bean intended to be used by Spring. *  * @author <a href="mailto:james.childers@gmail.com">James * */public class CaptchaBean {	private BackgroundProducer _bgProd = new TransparentBackgroundProducer();	private TextProducer _txtProd;	private NoiseProducer _noiseProd;	private GimpyRenderer _gimpy;	private boolean _addBorder = false;		private String _answer = "";	private BufferedImage _img;	private BufferedImage _bg;		public CaptchaBean(int width, int height) {		_img = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);	}		public CaptchaBean build() {		// Add and render the text		if (_txtProd != null) {			_answer += _txtProd.getText();			WordRenderer wr = new DefaultWordRenderer();			wr.render(_answer, _img);		}				if (_noiseProd != null) {			_noiseProd.makeNoise(_img);		}				if (_gimpy != null) {			_gimpy.gimp(_img);		}				_bg = _bgProd.getBackground(_img.getWidth(), _img.getHeight());		    	// Paint the main image over the background    	Graphics2D g = _bg.createGraphics();    	g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 1.0f));    	g.drawImage(_img, null, null);    	    	// Add the border, if necessary    	if (_addBorder) {    		int width = _img.getWidth();    		int height = _img.getHeight();    		            g.setColor(Color.BLACK);            g.drawLine(0, 0, 0, width);            g.drawLine(0, 0, width, 0);            g.drawLine(0, height - 1, width, height - 1);            g.drawLine(width - 1, height - 1, width - 1, 0);    	}    	_img = _bg;    	g.dispose();				return this;	}		public boolean isCorrect(String answer) {		return answer.equals(_answer);	}		public BufferedImage getImage() {		return _img;	}		public BackgroundProducer getBgProd() {		return _bgProd;	}	public void setBgProd(BackgroundProducer bgProd) {		_bgProd = bgProd;	}	public TextProducer getTxtProd() {		return _txtProd;	}	public void setTxtProd(TextProducer txtProd) {		_txtProd = txtProd;	}	public NoiseProducer getNoiseProd() {		return _noiseProd;	}	public void setNoiseProd(NoiseProducer noiseProd) {		_noiseProd = noiseProd;	}	public GimpyRenderer getGimpy() {		return _gimpy;	}	public void setGimpy(GimpyRenderer gimpy) {		_gimpy = gimpy;	}	public boolean isAddBorder() {		return _addBorder;	}	public void setAddBorder(boolean addBorder) {		_addBorder = addBorder;	}	public String getAnswer() {		return _answer;	}	public void setAnswer(String answer) {		_answer = answer;	}}

⌨️ 快捷键说明

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