tags:

views:

410

answers:

1

Hi, I have put up a Jcaptcha based on the example from the Jcaptcha site, but I need to configure the default jcaptcha with colors and fonts.

I managed to find this Configuration Jcaptcha with Spring, however this is with the use of Spring. I am a newbie with Java, and not using Spring, may I know how can I create new captcha configuration for my jcaptcha image?

Thank you in advance.

+1  A: 

The example you are pointing to is, indeed, for Spring Framework. But thats is of little concern here. I can imagine the difficulty one might have, who has no idea about how dependency injection works. So here is the same thing programmatically. Note, I will cut it short for brevity.

  • You need to create ImageCaptchaFactory, from your given URL its, com.octo.captcha.image.gimpy.GimpyFactory
  • Supply that to the ImageCaptchaEngine, while instantiating your captcha engine, namely com.octo.captcha.engine.GenericCaptchaEngine
  • And then pass that to your captcha service, com.octo.captcha.service.multitype.GenericManageableCaptchaService

Now about the colors and fonts. You will need to give information about colors and fonts to your captcha factory. How? Here it is,

  • The factory is taking to arguments of object type, word generator and word-to-image-composer, which are respectively, com.octo.captcha.component.wordgenerator.DictionaryWordGenerator and com.octo.captcha.component.image.wordtoimage.ComposedWordToImage
  • Word generator has nothing to do with color and fonts, so we left with the word to image composer. So, you need to provide those informations to composer while instantiating one, or may be there are some setters to do that. Check out the docs
  • The example is showing the config to generate random fonts, if you don't want it read the docs. Precisely, whats shown in the example there, you will need to create an instance of com.octo.captcha.component.image.fontgenerator.RandomFontGenerator with your choice of available fonts and pass that to the factory
  • Quite similarly, you will be instantiating relevant color objects, look into com.octo.captcha.component.image.backgroundgenerator.UniColorBackgroundGenerator for background color, and com.octo.captcha.component.image.color.SingleColorGenerator for color
  • For random colors look at, com.octo.captcha.component.image.color.RandomRangeColorGenerator
Adeel Ansari
Thank you very much. This really helps.
jl
I am glad it helped
Adeel Ansari