我试图在kohana 3.1中使用以下代码放置一个简单的验证码,为我生成模型中的图像。 $ session = Session :: instance();
$string = '';
for ($i = 0; $i < 5; $i++) {
$string .= chr(rand(97, 122));
}
$cns_captcha = $session->set('random_number', $string);
$dir = LIBPATH.'fonts/';
$image = imagecreatetruecolor(165, 50);
// random number 1 or 2
$num = rand(1,2);
if($num==1)
{
$font = "Capture it 2.ttf"; // font style
}
else
{
$font = "Molot.otf";// font style
}
// random number 1 or 2
$num2 = rand(1,2);
if($num2==1)
{
$color = imagecolorallocate($image, 113, 193, 217);// color
}
else
{
$color = imagecolorallocate($image, 163, 197, 82);// color
}
$white = imagecolorallocate($image, 255, 255, 255); // background color white
imagefilledrectangle($image,0,0,399,99,$white);
imagettftext ($image, 30, 0, 10, 40, $color, $dir.$font, $cns_captcha);
//header('Content-Type: image/PNG');
imagepng($image);
不幸的是,这正在产生
PNGIHDR 2 * v IDATx o d 4 4oM Ѵe &amp; ) F NCCB q i qp 6M 0S /]ͱC4t؎Ddy_?GXA
没有形象
在此先感谢您的帮助。
答案 0 :(得分:0)
您没有设置内容类型,您的浏览器会认为它是文本。
imagettftext ($image, 30, 0, 10, 40, $color, $dir.$font, $cns_captcha);
$this->response->headers('Content-Type', 'image/png');
imagepng($image);
编辑:
作为旁注,您是否看过Kohana的图像模块? http://kohanaframework.org/3.3/guide-api/Image