Java自学者论坛

 找回密码
 立即注册

手机号码,快捷登录

恭喜Java自学者论坛(https://www.javazxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,会员资料板块,购买链接:点击进入购买VIP会员

JAVA高级面试进阶训练营视频教程

Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程Go语言视频零基础入门到精通Java架构师3期(课件+源码)
Java开发全终端实战租房项目视频教程SpringBoot2.X入门到高级使用教程大数据培训第六期全套视频教程深度学习(CNN RNN GAN)算法原理Java亿级流量电商系统视频教程
互联网架构师视频教程年薪50万Spark2.0从入门到精通年薪50万!人工智能学习路线教程年薪50万大数据入门到精通学习路线年薪50万机器学习入门到精通教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程MySQL入门到精通教程
查看: 520|回复: 0

php 验证码 图像存在错误 无法显示 解决方法

[复制链接]
  • TA的每日心情
    奋斗
    2024-4-6 11:05
  • 签到天数: 748 天

    [LV.9]以坛为家II

    2034

    主题

    2092

    帖子

    70万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    705612
    发表于 2021-8-28 14:05:05 | 显示全部楼层 |阅读模式
    <?php
    
    $height = 300;
    $width = 300;
    $im = imagecreatetruecolor($width, $height);
    $white = imagecolorallocate ($im, 255, 255, 255);
    $blue = imagecolorallocate ($im, 0, 0, 64);
    imagefill($im, 0, 0, $blue);
    imagestring($im, 10, 100, 120, 'Hello,PHP', $white);
    ob_clean(); //如果验证码输出不了,加上这一句就可以输出了
    header ('Content-type: image/png');
    imagepng($im);imagedestroy($im);
    
    ?>

     

    <?php
    //无bug的国旗测试
    //ob_clean();
    header("Content-Type:image/jpeg");
    $ing = imagecreatetruecolor(700,410);
    //新建一个真彩色图像,返回值为一个图像标识符,背景默认为黑色,参数(x_size*y_size)
    $red = imagecolorallocate($ing,255,0,0);//定义背景颜色
    $yellow = imagecolorallocate($ing,237,231,32);//定义黄色
    imagefill($ing,0,0,$red);//填充颜色,以坐标(0,0)开始起填充
    //数组坐标,表示(x1,y1,x2,y2,x3,y3.....x11,y11);
    $a = array(90,30,108,73,157,73,119,102,135,152,93,123,52,152,66,102,29,74,76,73,90,30);
    imagefilledpolygon($ing,$a,10,$yellow);//画一个多边形:10表示顶点总数,$yellow表示填充色
    $a1 = array(229,25,229,43,248,48,229,55,229,74,217,60,198,66,210,50,197,34,218,39,229,25);
    imagefilledpolygon($ing,$a1,10,$yellow);
    $a2 = array(227,108,227,127,245,134,228,139,227,157,215,143,196,149,208,132,196,117,215,122,227,108);
    imagefilledpolygon($ing,$a2,10,$yellow);
    $a3 = array(163,184,163,204,181,211,163,216,163,234,152,220,132,225,144,209,132,193,151,199,163,184);
    imagefilledpolygon($ing,$a3,10,$yellow);
    $a4 = array(65,209,65,228,84,235,65,240,65,259,54,245,33,249,46,233,34,217,53,224,68,209);
    imagefilledpolygon($ing,$a4,10,$yellow);
    imagejpeg($ing);
    imagedestroy($ing);
    ?>

     

     

     

    注!关于验证码无法显示,首先判断GD库是否开启;

    默认配置下,php输出是先到输出缓冲区(output_buffering),只要数据还没有真正发送到浏览器(严格来说是tcp buffer),那么还是有机会清空先前的缓冲区里面的数据,使用内置的ob_clean函数即可。

    哎...今天够累的,签到来了1...
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|小黑屋|Java自学者论坛 ( 声明:本站文章及资料整理自互联网,用于Java自学者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2024-4-29 22:38 , Processed in 0.066014 second(s), 29 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表