make font size of grid captcha scale roughly to the current ratio of 20-30:120

jschan
Thomas Lynch 2 years ago
parent 6b437d7159
commit ff7db40f42
  1. 4
      lib/captcha/generators/grid.js
  2. 4
      lib/captcha/generators/grid2.js

@ -30,6 +30,8 @@ module.exports = async (captchaOptions) => {
//divide the space by grid size, accounting for padding
const spaceSize = (width-padding)/size;
const fontMinSize = Math.floor(width*0.16);
const fontMaxSize = Math.floor(width*0.25);
for(let j = 0; j < size; j++) { //for each row
//x offset for whole row (not per character or it gets way too difficult to solve)
@ -44,7 +46,7 @@ module.exports = async (captchaOptions) => {
} else {
character = falses[(await randomRange(0, falses.length))];
}
captcha.fontSize((await randomRange(20, 30)));
captcha.fontSize((await randomRange(fontMinSize, fontMaxSize)));
captcha.drawText(
(spaceSize * i) + cxOffset,
(spaceSize * (j + 1)) + cyOffset,

@ -92,11 +92,13 @@ module.exports = async (captchaOptions) => {
.font(__dirname+'/../font.ttf');
const spaceSize = (width-padding)/size;
const fontMinSize = Math.floor(width*0.16);
const fontMaxSize = Math.floor(width*0.25);
for (let row = 0; row < size; row++) {
let cxOffset = Math.floor(spaceSize * 1.5);
for (let col = 0; col < size; col++) {
const cyOffset = captchaOptions.grid.iconYOffset;
captcha.fontSize((await randomRange(20, 30)));
captcha.fontSize((await randomRange(fontMinSize, fontMaxSize)));
captcha.drawText(
(spaceSize * col) + cyOffset,
(spaceSize * row) + cxOffset,

Loading…
Cancel
Save