Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

Example of components widely used

This page show how to configure custom engine's components using Spring xml configuration.
Spring is not a requirement, you can use these components out of the box without Spring using their constructor.

See also : customize an engine

Base components

Fonts

<bean id="fontArial" class="java.awt.Font" >
			<constructor-arg index="0"><value>Arial</value></constructor-arg>
			<constructor-arg index="1"><value>0</value></constructor-arg>
			<constructor-arg index="2"><value>10</value></constructor-arg>
		</bean>

		<bean id="fontTahoma" class="java.awt.Font" >
			<constructor-arg index="0"><value>Tahoma</value></constructor-arg>
			<constructor-arg index="1"><value>0</value></constructor-arg>
			<constructor-arg index="2"><value>10</value></constructor-arg>
		</bean>

		<bean id="fontVerdana" class="java.awt.Font" >
			<constructor-arg index="0"><value>Verdana</value></constructor-arg>
			<constructor-arg index="1"><value>0</value></constructor-arg>
			<constructor-arg index="2"><value>10</value></constructor-arg>
		</bean>

		<bean id="fontComic" class="java.awt.Font" >
			<constructor-arg index="0"><value>Comic sans MS</value></constructor-arg>
			<constructor-arg index="1"><value>0</value></constructor-arg>
			<constructor-arg index="2"><value>10</value></constructor-arg>
		</bean>

		<bean id="fontLucida" class="java.awt.Font" >
			<constructor-arg index="0"><value>Lucida console</value></constructor-arg>
			<constructor-arg index="1"><value>0</value></constructor-arg>
			<constructor-arg index="2"><value>10</value></constructor-arg>
		</bean>

Color generators

Single color

<bean id="colorGenYellow" class="com.octo.captcha.component.image.color.SingleColorGenerator" >
		<constructor-arg index="0"><ref bean="yellow"/></constructor-arg>
</bean>

List of colors

<bean id="colorGenRandomList" class="com.octo.captcha.component.image.color.RandomListColorGenerator" >
		<constructor-arg index="0">
			<list>
				<ref bean="yellow"/>
				<ref bean=" blue "/>
				<ref bean=" lightBlue "/>
			</list>
		</constructor-arg>
	</bean>
	<bean id="blue" class="java.awt.Color" >
		<constructor-arg type="int" index="0"><value>0</value></constructor-arg>
		<constructor-arg type="int" index="1"><value>0</value></constructor-arg>
		<constructor-arg type="int" index="2"><value>255</value></constructor-arg>
	</bean>
		
	<bean id="lightBlue" class="java.awt.Color" >
		<constructor-arg type="int" index="0"><value>200</value></constructor-arg>
		<constructor-arg type="int" index="1"><value>200</value></constructor-arg>
		<constructor-arg type="int" index="2"><value>255</value></constructor-arg>
	</bean>
		
	<bean id="yellow" class="java.awt.Color" >
		<constructor-arg type="int" index="0"><value>255</value></constructor-arg>
		<constructor-arg type="int" index="1"><value>255</value></constructor-arg>
		<constructor-arg type="int" index="2"><value>0</value></constructor-arg>
	</bean>

Range of colors

	<bean id="colorGenRandomBlue" class="com.octo.captcha.component.image.color.RandomRangeColorGenerator" >
		<constructor-arg index="0">
		<list>
          <value>150</value>
          <value>255</value>
    	</list>
    	</constructor-arg>
		<constructor-arg index="1">
		<list>
          <value>0</value>
          <value>50</value>
    	</list>
    	</constructor-arg>
		<constructor-arg index="2">
		<list>
          <value>200</value>
          <value>255</value>
    	</list>
	    </constructor-arg>
		<constructor-arg index="3">
		<list>
          <value>255</value>
          <value>255</value>
		</list>
		</constructor-arg>
	</bean>

Locales

<bean id="java.util.Locale.FRANCE"
	  class="org.springframework.beans.factory.config.FieldRetrievingFactoryBean"/>
 <bean id="java.util.Locale.US"
	  class="org.springframework.beans.factory.config.FieldRetrievingFactoryBean"/>

Special components

Backgrounds

<bean id="backGenUni" class="com.octo.captcha.component.image.backgroundgenerator.UniColorBackgroundGenerator" >
		<constructor-arg index="0"><value>300</value></constructor-arg>
		<constructor-arg index="1"><value>100</value></constructor-arg>
</bean>
	
<bean id="backGenFunky" class="com.octo.captcha.component.image.backgroundgenerator.FunkyBackgroundGenerator" >
		<constructor-arg index="0"><value>300</value></constructor-arg>
		<constructor-arg index="1"><value>100</value></constructor-arg>
		<constructor-arg type="com.octo.captcha.component.image.color.ColorGenerator" index="2"><ref 				bean="colorGenRandomList"/></constructor-arg>
		<constructor-arg type="com.octo.captcha.component.image.color.ColorGenerator" index="3"><ref 				bean="colorGenRandomList"/></constructor-arg>
		<constructor-arg type="com.octo.captcha.component.image.color.ColorGenerator" index="4"><ref 				bean="colorGenRandomList"/></constructor-arg>
		<constructor-arg type="com.octo.captcha.component.image.color.ColorGenerator" index="5"><ref 			bean="colorGenRandomList"/></constructor-arg>
		<constructor-arg index="6"><value>0.2f</value></constructor-arg>
	</bean>


	<bean id="backGenMultiShape" 		class="com.octo.captcha.component.image.backgroundgenerator.MultipleShapeBackgroundGenerator" >
		<constructor-arg index="0"><value>300</value></constructor-arg>
		<constructor-arg index="1"><value>100</value></constructor-arg>
		<!--firstEllipseColorGenerator-->
		<constructor-arg index="2"><ref bean="lightBlue"/></constructor-arg>
		<!--secondEllipseColorGenerator-->
		<constructor-arg index="3"><ref bean="lightRed"/></constructor-arg>
		<!--spaceBetweenLine-->
		<constructor-arg index="4"><value>10</value></constructor-arg>
		<!--spaceBetweenCircle-->
		<constructor-arg index="5"><value>5</value></constructor-arg>
		<!--ellipseHeight-->
		<constructor-arg index="6"><value>10</value></constructor-arg>
		<!--ellipseWidth-->
		<constructor-arg index="7"><value>6</value></constructor-arg>
		<!--firstRectangleColorGenerator-->
		<constructor-arg index="8"><ref bean="red"/></constructor-arg>
		<!--secondRectangleColorGenerator-->
		<constructor-arg index="9"><ref bean="white"/></constructor-arg>
		<!--firstRectangleColorGenerator-->
		<constructor-arg index="10"><value>3</value></constructor-arg>
	</bean>
		
	<bean id="backGenPicture" 		class="com.octo.captcha.component.image.backgroundgenerator.FileReaderRandomBackgroundGenerator" >
		<constructor-arg index="0"><value>300</value></constructor-arg>
		<constructor-arg index="1"><value>100</value></constructor-arg>
		<constructor-arg index="2"><ref bean="path"/></constructor-arg>
	</bean>
	
	<bean id="path" class="java.lang.String" >
		<constructor-arg><value>\home\jcaptcha\conf\gimpybackgrounds</value></constructor-arg>
	</bean>

Deformations

Deformations can be build with ImageFilter, like JhLabs Filtres, and injected in a ImageDeformationByFilters component.

		<bean id="sphere" class="com.jhlabs.image.SphereFilter" >
			<property name="refractionIndex"><value>1</value></property>
		</bean>
		
		<bean id="emboss" class="com.jhlabs.image.EmbossFilter" >
			<property name="bumpHeight"><value>1.0</value></property>
		</bean>
		
		<bean id="rippleBack" class="com.jhlabs.image.RippleFilter" >
			<property name="waveType"><value>3</value></property>
			<property name="XAmplitude"><value>10</value></property>
			<property name="YAmplitude"><value>3</value></property>
			<property name="XWavelength"><value>20</value></property>
			<property name="YWavelength"><value>10</value></property>
			<property name="edgeAction"><value>1</value></property>
		</bean>
		
		<bean id="smear" class="com.jhlabs.image.SmearFilter" >
			<property name="shape"><value>0</value></property>
			<property name="distance"><value>15</value></property>
			<property name="density"><value>0.4</value></property>
			<property name="scatter"><value>0.5</value></property>
			<property name="angle"><value>0.0</value></property>
			<property name="mix"><value>0.6</value></property>
			<property name="fadeout"><value>0</value></property>
		</bean>

		<bean id="ripple" class="com.jhlabs.image.RippleFilter" >
			<property name="waveType"><value>1</value></property>
			<property name="XAmplitude"><value>2</value></property>
			<property name="YAmplitude"><value>2</value></property>
			<property name="XWavelength"><value>10</value></property>
			<property name="YWavelength"><value>10</value></property>
			<property name="edgeAction"><value>1</value></property>
		</bean>
		
		<bean id="ripple2" class="com.jhlabs.image.RippleFilter" >
			<property name="waveType"><value>2</value></property>
			<property name="XAmplitude"><value>2</value></property>
			<property name="YAmplitude"><value>2</value></property>
			<property name="XWavelength"><value>10</value></property>
			<property name="YWavelength"><value>10</value></property>
			<property name="edgeAction"><value>1</value></property>
		</bean>
		
		<bean id="ripple3" class="com.jhlabs.image.RippleFilter" >
			<property name="waveType"><value>5</value></property>
			<property name="XAmplitude"><value>5</value></property>
			<property name="YAmplitude"><value>5</value></property>
			<property name="XWavelength"><value>10</value></property>
			<property name="YWavelength"><value>10</value></property>
			<property name="edgeAction"><value>1</value></property>
		</bean>
		
		
		<bean id="twirl" class="com.jhlabs.image.TwirlFilter" >
			<property name="angle"><value>0.8</value></property>
		</bean>
		
		<bean id="water" class="com.jhlabs.image.WaterFilter" >
			<property name="amplitude"><value>2</value></property>
			<property name="antialias"><value>true</value></property>
			<property name="wavelength"><value>20</value></property>
		</bean>
		
		<bean id="weaves" class="com.jhlabs.image.WeaveFilter" >
			<property name="useImageColors"><value>true</value></property>
			<property name="XGap"><value>2</value></property>
			<property name="XWidth"><value>10</value></property>
			<property name="YWidth"><value>16</value></property>
			<property name="YGap"><value>6</value></property>
		</bean>
		
		
		<bean id="crystal" class="com.jhlabs.image.CrystalizeFilter" >
			<property name="scale"><value>0.5</value></property>
			<property name="gridType"><value>1</value></property>
			<property name="fadeEdges"><value>false</value></property>
			<property name="edgeThickness"><value>0.4</value></property>
			<property name="randomness"><value>1.0</value></property>
		</bean>

		<bean id="smearDef" class="com.octo.captcha.component.image.deformation.ImageDeformationByFilters" >
			<constructor-arg index="0">
				<list>
	                <ref bean="smear"/>
            	</list>
            </constructor-arg>
		</bean>
		
		<bean id="rippleDef" class="com.octo.captcha.component.image.deformation.ImageDeformationByFilters" >
			<constructor-arg index="0">
				<list>
	                <ref bean="ripple"/>
            	</list>
            </constructor-arg>
		</bean>
		
		<bean id="ripple2Def" class="com.octo.captcha.component.image.deformation.ImageDeformationByFilters" >
			<constructor-arg index="0">
				<list>
	                <ref bean="ripple2"/>
            	</list>
            </constructor-arg>
		</bean>
		
		<bean id="ripple3Def" class="com.octo.captcha.component.image.deformation.ImageDeformationByFilters" >
			<constructor-arg index="0">
				<list>
	                <ref bean="ripple3"/>
            	</list>
            </constructor-arg>
		</bean>
		
		
		<bean id="sphereDef" class="com.octo.captcha.component.image.deformation.ImageDeformationByFilters" >
			<constructor-arg index="0">
				<list>
	                <ref bean="sphere"/>
            	</list>
            </constructor-arg>
		</bean>
		
		<bean id="waterDef" class="com.octo.captcha.component.image.deformation.ImageDeformationByFilters" >
			<constructor-arg index="0">
				<list>
	                <ref bean="water"/>
            	</list>
            </constructor-arg>
		</bean>
		
		<bean id="embossDef" class="com.octo.captcha.component.image.deformation.ImageDeformationByFilters" >
			<constructor-arg index="0">
				<list>
	                <ref bean="emboss"/>
            	</list>
            </constructor-arg>
		</bean>
		
		<bean id="rippleDefBack" class="com.octo.captcha.component.image.deformation.ImageDeformationByFilters" >
			<constructor-arg index="0">
				<list>
	                <ref bean="rippleBack"/>
            	</list>
            </constructor-arg>
		</bean>
		
		<bean id="cristalDef" class="com.octo.captcha.component.image.deformation.ImageDeformationByFilters" >
			<constructor-arg index="0">
				<list>
	                <ref bean="crystal"/>
            	</list>
            </constructor-arg>
		</bean>
		
		<bean id="weavesDef" class="com.octo.captcha.component.image.deformation.ImageDeformationByFilters" >
			<constructor-arg index="0">
				<list>
	                <ref bean="weaves"/>
            	</list>
            </constructor-arg>
		</bean>
		
		<bean id="twirlDef" class="com.octo.captcha.component.image.deformation.ImageDeformationByFilters" >
			<constructor-arg index="0">
				<list>
	                <ref bean="twirl"/>
            	</list>
            </constructor-arg>
		</bean>
		
		<bean id="none" class="com.octo.captcha.component.image.deformation.ImageDeformationByFilters" >
			<constructor-arg index="0">
				<null/>
            </constructor-arg>
		</bean>

  • No labels