输出带有字体的验证码图像导致 apache "dead"
output captcha image with font cause apache "dead"
$image = new \Imagick();
$draw = new \ImagickDraw();
$fillColor = new \ImagickPixel('black');
$bgColor = new \ImagickPixel('gray');
$fontSize = 24;
$text = 'helloworld';
$text = substr($text, 0, rand(1, 10));
$font = '/home/koogua/font/yy.ttf';
$draw->setFont($font);
$draw->setFontSize($fontSize);
$draw->setFillColor($fillColor);
$draw->setStrokeAntialias(true);
$draw->setTextAntialias(true);
$draw->setgravity(\Imagick::GRAVITY_CENTER);
$draw->annotation(0, 0, $text);
$metrics = $image->queryFontMetrics($draw, $text);
$image->newImage($metrics['textWidth'] + 30, $metrics['textHeight'] + 10, $bgColor);
$image->setImageFormat('png');
$image->drawImage($draw);
$draw->destroy();
// $image->writeImage('test.png');
header('Content-Type: image/png');
echo $image->getImageBlob();
exit;
// $this->response->setContentType( 'image/png');
// $this->response->setContent($image->getImageBlob());
// $this->response->send();
环境:phalcon
输出字体:刷新页面1-5次,验证码图像正常,5次后,apache "dead"
没有字体的输出:ok
保存文件:好的
当我设置字体大小为18时,一切正常,其他字体大小会导致apache "dead",似乎18是唯一的幸运数字,很奇怪,是吗?
环境:另一个php框架(启用重写)
输出字体:好的
没有字体的输出:ok
保存文件:确定
环境:纯净php
输出字体:好的
没有字体的输出:ok
保存文件:确定
有人可以测试上面的代码吗?
字体文件好像有问题,换个常用的字体,就OK了
$image = new \Imagick();
$draw = new \ImagickDraw();
$fillColor = new \ImagickPixel('black');
$bgColor = new \ImagickPixel('gray');
$fontSize = 24;
$text = 'helloworld';
$text = substr($text, 0, rand(1, 10));
$font = '/home/koogua/font/yy.ttf';
$draw->setFont($font);
$draw->setFontSize($fontSize);
$draw->setFillColor($fillColor);
$draw->setStrokeAntialias(true);
$draw->setTextAntialias(true);
$draw->setgravity(\Imagick::GRAVITY_CENTER);
$draw->annotation(0, 0, $text);
$metrics = $image->queryFontMetrics($draw, $text);
$image->newImage($metrics['textWidth'] + 30, $metrics['textHeight'] + 10, $bgColor);
$image->setImageFormat('png');
$image->drawImage($draw);
$draw->destroy();
// $image->writeImage('test.png');
header('Content-Type: image/png');
echo $image->getImageBlob();
exit;
// $this->response->setContentType( 'image/png');
// $this->response->setContent($image->getImageBlob());
// $this->response->send();
环境:phalcon
输出字体:刷新页面1-5次,验证码图像正常,5次后,apache "dead"
没有字体的输出:ok
保存文件:好的
当我设置字体大小为18时,一切正常,其他字体大小会导致apache "dead",似乎18是唯一的幸运数字,很奇怪,是吗?
环境:另一个php框架(启用重写)
输出字体:好的
没有字体的输出:ok
保存文件:确定
环境:纯净php
输出字体:好的
没有字体的输出:ok
保存文件:确定
有人可以测试上面的代码吗?
字体文件好像有问题,换个常用的字体,就OK了