View Issue Details

IDProjectCategoryView StatusLast Update
0008462mantisbtfeaturepublic2014-12-08 00:34
ReporterjhugginsAssigned Tograngeway 
Status closedResolutionfixed 
PlatformIBM Server ApplianceOSLinuxOS Version2.4.x
Product Version1.0.8 
Target Version1.3.0-beta.1Fixed in Version1.3.0-beta.1 
Summary0008462: Captcha will benefit supporting other than jpeg format

I like the new captcha feature (even though it does cause problems with vision impaired and text browsers). The feature tried to display the image on the signup page, but the make_captcha_img.php script did not output anything.

Way back when I remember having some difficulties with GD working with JPEGs so opted to have just the GIF and PNG.

I changed like 242 from

@ImageJPEG($image, '', $this->jpegquality);


@imagepng($image, '', $this->jpegquality);

and now the image creation works beautifully with PNG as the graphic format.

Unless there is something I have missed here, I would highly suggest adding an option in the config_inc.php files that allows the user to select the graphic format of their captcha image. This allows for PHP installations which might not have JPEG ability for whatever reason, but still have GIF and/or PNG.

TagsNo tags attached.


child of 0016565 closedgrangeway Implement new captcha library 




2007-10-13 22:14

reporter   ~0015860

PNG files are less universal, and generally use more bandwidth than a JPEG that produces the same perceptible quality. In general, the benefits of JPEG greatly outweighs the lossless quality of PNG, especially in this situation where perfect quality is mostly unnecessary and a waste of bandwidth.



2007-10-14 21:22

reporter   ~0015868

I agree JPEG is a better choice. However GIF and PNG should be made options to allow captcha on systems which don't have the ability to create JPEG.

It turns out, however, for these particular captcha images the PNG files average about 990 bytes vs. about 2200 bytes for JPEG. If bandwidth is the concern JPEG is not the appropriate choice for these specific types of images.

Debates over why one format is better than another are interesting, but miss the point the graphic format choice, if reasonably available, should be in the hands of the web site owner, not mandated by Mantis... at least when "imagejpeg" and "imagepng" work almost interchangeably.

It is a mistake to assume every PHP installation has all the image libs available for all formats.

By the way, I know this is third party code from Pascal and Mantis is simply making good use of it, but it does not weaken the argument graphic format choice, when all other things are equal, belongs to the web owner.



2013-11-01 06:50

developer   ~0038416

Marked as resolved following grangeway's implementation of securimage captcha library, as per his commit comment.

Feel free to reopen if you find that the original issue persists.



2013-12-01 22:04

reporter   ~0038682




2013-12-01 22:05

reporter   ~0038726


Related Changesets

MantisBT: master 8dd28f84

2013-10-15 16:02:42

Paul Richards

Details Diff
New Feature: replace captcha library with open source library. Adds audio support to captcha for accessibility [requires flash on client]

Ported from master-2.x branch

Resolves (Part or all) of bugs:

0010972: openbase_dir breaks captcha generation
0008796: The letters in the catchpa on account creation page are too small
0010976: Remove instances of pass-by-reference (deprecated in PHP 5.3.0)
0010028: Registrations by bots via captcha exploit
0008462: Captcha will benefit supporting other than jpeg format
0008129: Alternative to captchas
mod - core/print_api.php Diff File
mod - library/README.libs Diff File
add - library/securimage/AHGBold.ttf Diff File
add - library/securimage/LICENSE.txt Diff File
add - library/securimage/README.FONT.txt Diff File
add - library/securimage/README.txt Diff File
add - library/securimage/WavFile.php Diff File
add - library/securimage/audio/en/0.wav Diff File
add - library/securimage/audio/en/1.wav Diff File
add - library/securimage/audio/en/10.wav Diff File
add - library/securimage/audio/en/11.wav Diff File
add - library/securimage/audio/en/12.wav Diff File
add - library/securimage/audio/en/13.wav Diff File
add - library/securimage/audio/en/14.wav Diff File
add - library/securimage/audio/en/15.wav Diff File
add - library/securimage/audio/en/16.wav Diff File
add - library/securimage/audio/en/17.wav Diff File
add - library/securimage/audio/en/18.wav Diff File
add - library/securimage/audio/en/19.wav Diff File
add - library/securimage/audio/en/2.wav Diff File
add - library/securimage/audio/en/20.wav Diff File
add - library/securimage/audio/en/3.wav Diff File
add - library/securimage/audio/en/4.wav Diff File
add - library/securimage/audio/en/5.wav Diff File
add - library/securimage/audio/en/6.wav Diff File
add - library/securimage/audio/en/7.wav Diff File
add - library/securimage/audio/en/8.wav Diff File
add - library/securimage/audio/en/9.wav Diff File
add - library/securimage/audio/en/A.wav Diff File
add - library/securimage/audio/en/B.wav Diff File
add - library/securimage/audio/en/C.wav Diff File
add - library/securimage/audio/en/D.wav Diff File
add - library/securimage/audio/en/E.wav Diff File
add - library/securimage/audio/en/F.wav Diff File
add - library/securimage/audio/en/G.wav Diff File
add - library/securimage/audio/en/H.wav Diff File
add - library/securimage/audio/en/I.wav Diff File
add - library/securimage/audio/en/J.wav Diff File
add - library/securimage/audio/en/K.wav Diff File
add - library/securimage/audio/en/L.wav Diff File
add - library/securimage/audio/en/M.wav Diff File
add - library/securimage/audio/en/MINUS.wav Diff File
add - library/securimage/audio/en/N.wav Diff File
add - library/securimage/audio/en/O.wav Diff File
add - library/securimage/audio/en/P.wav Diff File
add - library/securimage/audio/en/PLUS.wav Diff File
add - library/securimage/audio/en/Q.wav Diff File
add - library/securimage/audio/en/R.wav Diff File
add - library/securimage/audio/en/S.wav Diff File
add - library/securimage/audio/en/T.wav Diff File
add - library/securimage/audio/en/TIMES.wav Diff File
add - library/securimage/audio/en/U.wav Diff File
add - library/securimage/audio/en/V.wav Diff File
add - library/securimage/audio/en/W.wav Diff File
add - library/securimage/audio/en/X.wav Diff File
add - library/securimage/audio/en/Y.wav Diff File
add - library/securimage/audio/en/Z.wav Diff File
add - library/securimage/audio/en/error.wav Diff File
add - library/securimage/audio/noise/check-point-1.wav Diff File
add - library/securimage/audio/noise/crowd-talking-1.wav Diff File
add - library/securimage/audio/noise/crowd-talking-6.wav Diff File
add - library/securimage/audio/noise/crowd-talking-7.wav Diff File
add - library/securimage/audio/noise/kids-playing-1.wav Diff File
add - library/securimage/backgrounds/bg3.jpg Diff File
add - library/securimage/backgrounds/bg4.jpg Diff File
add - library/securimage/backgrounds/bg5.jpg Diff File
add - library/securimage/backgrounds/bg6.png Diff File
add - library/securimage/captcha.html Diff File
add - library/securimage/database/.htaccess Diff File
add - library/securimage/database/index.html Diff File
add - library/securimage/database/securimage.sq3 Diff File
add - library/securimage/example_form.ajax.php Diff File
add - library/securimage/example_form.php Diff File
add - library/securimage/images/audio_icon.png Diff File
add - library/securimage/images/refresh.png Diff File
add - library/securimage/securimage.php Diff File
add - library/securimage/securimage_play.php Diff File
add - library/securimage/securimage_play.swf Diff File
add - library/securimage/securimage_show.php Diff File
add - library/securimage/words/words.txt Diff File
rm - make_captcha_img.php Diff File
mod - signup.php Diff File
mod - signup_page.php Diff File

Issue History

Date Modified Username Field Change
2007-10-13 21:04 jhuggins New Issue
2007-10-13 22:14 jreese Note Added: 0015860
2007-10-14 21:22 jhuggins Note Added: 0015868
2013-11-01 06:44 dregad Relationship added child of 0016565
2013-11-01 06:45 dregad Changeset attached => MantisBT master 8dd28f84
2013-11-01 06:47 dregad Status new => resolved
2013-11-01 06:47 dregad Fixed in Version => 1.3.0-beta.1
2013-11-01 06:47 dregad Resolution open => fixed
2013-11-01 06:47 dregad Assigned To => dregad
2013-11-01 06:48 dregad Status resolved => assigned
2013-11-01 06:48 dregad Assigned To dregad => grangeway
2013-11-01 06:48 dregad Status assigned => resolved
2013-11-01 06:49 dregad Target Version => 1.3.0-beta.1
2013-11-01 06:50 dregad Note Added: 0038416
2013-12-01 22:04 govind Note Added: 0038682
2013-12-01 22:05 govind Note Added: 0038726
2014-12-08 00:34 vboctor Status resolved => closed