Kohana 3.1创建imagejpeg或imagepng验证码

时间:2014-06-11 09:05:26

标签: captcha kohana-3

我试图在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 没有形象 在此先感谢您的帮助。

1 个答案:

答案 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