使用字体输出验证码图像导致apache“死”

时间:2015-09-14 02:44:26

标签: php captcha phalcon imagick

 $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次,capcha图像没问题,5次后,apache“死”

输出没有字体:ok

保存文件:确定

当我将字体大小设置为18时,一切正常,其他字体大小会导致apache“死”,似乎18是唯一的运气号,非常奇怪,是吗?

环境:另一个php框架(启用重写)

输出字体:ok

输出没有字体:ok

保存文件:确定

环境:纯php

输出字体:ok

输出没有字体:ok

保存文件:确定

有人可以测试上面的代码吗?

1 个答案:

答案 0 :(得分:1)

字体文件似乎有问题,换成另一种常用字体,现在一切正常。