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

📄 waterriple.java

📁 基于Java平台的、功能强大的验证码图片生成工具
💻 JAVA
字号:
/*
 * Created on Sep 14, 2005
 *
 * To change the template for this generated file go to
 * Window>Preferences>Java>Code Generation>Code and Comments
 */
package nl.captcha.obscurity.imp;

import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.image.BufferedImage;
import java.awt.image.FilteredImageSource;
import java.util.Properties;

import nl.captcha.obscurity.GimpyEngine;
import nl.captcha.obscurity.NoiseProducer;
import nl.captcha.util.Helper;

import com.jhlabs.image.RippleFilter;
import com.jhlabs.image.TransformFilter;
import com.jhlabs.image.WaterFilter;


/**
 * @author Administrator
 *
 * To change the template for this generated type comment go to
 * Window>Preferences>Java>Code Generation>Code and Comments
 */
public class WaterRiple implements GimpyEngine {
	
	
	private Properties props = null;
	
	public WaterRiple(Properties props) {
		this.props = props;
	}
	public WaterRiple() {
		
		}
	
	
	
	/**
		 * Apply Ripple and Water ImageFilters to distort the image.
		 * 
		 * @param image the image to be distort
		 * @return the distort image
		 */
		public  BufferedImage getDistortedImage(BufferedImage image){
        
			BufferedImage imageDistorted = 
				new BufferedImage(image.getWidth(), image.getHeight(), 
					BufferedImage.TYPE_INT_ARGB);

			Graphics2D graph = (Graphics2D)imageDistorted.getGraphics();
        
			//create filter ripple
			RippleFilter filter = new RippleFilter();
			filter.setWaveType(RippleFilter.SINGLEFRAME);
			filter.setXAmplitude(2.6f);
			filter.setYAmplitude(1.7f);
			filter.setXWavelength(15);
			filter.setYWavelength(5);
			filter.setEdgeAction(TransformFilter.RANDOMPIXELORDER);
        
			//create water filter                
			WaterFilter water = new WaterFilter();
			water.setAmplitude(4);
			water.setAntialias(true);
			water.setPhase(15);
			water.setWavelength(70);
        
			//apply filter water              
			FilteredImageSource filtered = 
				new FilteredImageSource(image.getSource(), water);
			Image img = Toolkit.getDefaultToolkit().createImage(filtered);
        
			//apply filter ripple
			filtered = new FilteredImageSource(img.getSource(), filter);
			img = Toolkit.getDefaultToolkit().createImage(filtered);
               
			graph.drawImage(img, 0, 0, null, null);
        
			graph.dispose();
        
			//draw line over the iamge and/or text
			NoiseProducer noise = (NoiseProducer)Helper.ThingFactory.loadImpl(Helper.ThingFactory.NOICEIMP, props);
			noise.makeNoise(imageDistorted, .1f, .1f, .25f, .25f);
			noise.makeNoise(imageDistorted, .1f, .25f, .5f, .9f);
			return imageDistorted;
		}
    

	/* (non-Javadoc)
	 * @see nl.captcha.obscurity.GimpyEngine#setProperties(java.util.Properties)
	 */
	public void setProperties(Properties props) {
		this.props = props;

	}

}

⌨️ 快捷键说明

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