前言

有时候我们可能随意的使用php跟GD库来创建一张图片,可能是用于展示验证码之类的。

官方代码如下:Note: 此函数需要 GD 2.0.1 或更高版本(推荐 2.0.28 及更高版本)。<?php

header ('Content-Type: image/png');

$im = @imagecreatetruecolor(120, 20)

or die('Cannot Initialize new GD image stream');

$text_color = imagecolorallocate($im, 233, 14, 91);

imagestring($im, 1, 5, 5, 'A Simple Text String', $text_color);

imagepng($im);

imagedestroy($im);

?>

以上例程的输出类似于:

可能会遇到的坑事情总是往往不如人意,在大大小小的项目,零零碎碎的代码中,总会遇到一些问题,造成用GD2库画图,图像无法显示等等。

bug1:未开启GD模块

找到你PHP的配置文件:php.ini,寻到这里行;extension=php_gd2.dll

如果这行前面有分号,记得去掉,并重启相关服务。

bug2:执行文件格式有问题

你的代码很可能是使用了像editpuls或者notepad++这样的文本编辑器编辑的,那么他们的默认编码格式就是有BOM的utf-8。

UTF-8 BOM又叫UTF-8 签名,其实UTF-8的BOM对UFT-8没有作用,是为了支持UTF-16,UTF-32才加上的BOM,BOM签名的意思就是告诉编辑器当前文件采用何种编码,方便编辑器识别,但是BOM虽然在编辑器中不显示,但是会产生输出,就像多了一个空行。一般我用UTF-8无BOM格式,所以你需要将代码的编码格式改成无BOM格式。

如何检验代码编码格式是否有带BOM呢?有一个简单的方法:$url = 'http://xxx/xxx'

$s = file_get_contents($url);

echo bin2hex($s);

//输出结果:efbbbf89504e470d0a1a0a0000000d49484452000000c6000000c60103000000b3556d1e0000000......

如果结果前面是efbbbf开头,就说明代码带有BOM 头。

这时就采用各种编辑器或者小工具,转换一下代码编码为不带BOM的就可以了。

bug3:受缓存影响

如果尝试多种方法无果,这时可以考虑使用ob_clean()了,清除一下缓存。

ob_clean这个函数的作用就是用来丢弃输出缓冲区中的内容,如果你的有许多生成的图片类文件,那么想要访问正确,就要经常清除缓冲区。例如:public function create()

{

ob_clean();

$a = new verify();

session::set('captcha', strtolower($a->create(4, 15)));

view::assign("captcha", $a);

view::display("captcha");

exit(0);

}

希望以上能帮助大家填些坑~

php gd2图片保存,PHP使用GD2库生成的图像无法输出的解决方法相关推荐

  1. PCL库使用中遇到的一些问题及解决方法

    a. pcl::PointCloud对象变量 与pcl::PointCloud::Ptr 对象指针 的相互转换 #include <pcl/io/pcd_io.h> #include &l ...

  2. ANASYS Fluent保存的文件打不开或打开出现错误,解决方法

    ANSYS Fluent保存的文件打不开或打开出现错误,解决方法 问题描述: 当我们使用ANSYS Fluent将创建的文件运行保持后,有时打开出现错误,我们会很疑惑,怎么该软件和其他软件保存方式和打 ...

  3. 相机模型和双目立体匹配完成一个基于KITTI立体相机采集图片的立体图像匹配程序,生成视差图像和3D点云图像

    机模型和双目立体匹配完成一个基于KITTI立体相机采集图片的立体图像匹配程序,生成视差图像和3D点云图像 一.针孔相机模型 二.双目相机模型 三.OpenCV实例实现用Pangolin生成视差图像和3 ...

  4. 怎么把做好的ps保存成图片_PS保存图片提示“无法完成请求”,这里有4种解决方法...

    经常有一些小伙伴会给我留言,在使用PS处理图片结束,将图片导出保存时会出现"不能完成请求"的提示. 这个问题困扰了很多人,虽然网上提供了一些解决方法,但并不是全部有效. 鉴于此,今 ...

  5. 无法右键保存 图片 html,谷歌浏览器不能保存图片怎么办_谷歌浏览器右键不能保存图片的解决方法-系统城...

    在使用谷歌浏览器浏览网页时,如果碰到了自己喜欢的图片我们一般都会保存下来.然而有的网友却表示说,自己的谷歌浏览器出现了右键不能保存图片的情况,不清楚怎么办很是影响自己的使用,那么对此今天本文就来教大家 ...

  6. QImage/QPixmap加载图片失败(宽和高都为0)的两种解决方法

    先看现象,这里有一张图片test.png,windows照片查看器可以正常打开 但是用QImage加载时 QString filePath = qApp->applicationDirPath( ...

  7. busybox arm-linux-gcc 4.4.4库的路径,BUSYBOX编译错误及解决方法总结

    编译busybox的组合: busybox-1.0.0 arm-linux-gcc-2.95.3 (AT91rm9200开发板) 经典参考: http://www.doczj.com/doc/caf6 ...

  8. android bitmap oom 最新处理办法,【移动开发】Android中图片过大造成内存溢出,OOM(OutOfMemory)异常解决方法...

    当我们在做项目过程中,一遇到显示图片时,就要考虑图片的大小,所占内存的大小,原因就是Android分配给Bitmap的大小只有8M,试想想我们用手机拍照,普通的一张照片不也得1M以上,所以androi ...

  9. html内容被背景图片遮住怎么办_div被iframe遮住的几种情况及解决方法

    类似结构: 复制代码代码如下: http://caibaojian.com">> 第一种:透明背景被遮住 当div使用透明的背景时,无论是使用(opacity或者rgba格式), ...

最新文章

  1. 根据CPU核数合理设置线程池大小
  2. C++对C的函数扩展
  3. matlab程序设计实践,MATLAB程序设计实践(第二题)
  4. 机器学习:正则化原理总结
  5. Oracle中ascii为0的陷阱
  6. 转正后的感悟(对正在实习的朋友的建议吧)
  7. libpcap 库使用(二)
  8. WebLogic Clustering Overview Slides
  9. 怎样在html应用样式表,html – 如何仅将CSS样式应用于文本
  10. 微信小程序2:网易云音乐(完整版)
  11. JavaScript中三元运算符
  12. 微信公众号开发移动端应用
  13. php 问卷调查,php 问卷调查结果统计
  14. Maven 之 settings.xml 文件详解
  15. 听罗辑思维关于商业模式的思考
  16. 职场心理 自述-共勉
  17. Android记事本定时功能,安卓手机上怎么使用日历记事本?
  18. Axialis IconWorkshop图标制作软件一次性制作多个尺寸图标ico
  19. python小游戏毕设 仿八分音符的声控小游戏设计与实现 (源码)
  20. 基于4G无线路由器的配电网双路交流电远程监测案例

热门文章

  1. 百度飓风算法版本类型说明,如何破解飓风算法呢
  2. PHP的一个过滤敏感词或脏话的方法
  3. 爱眼小能手!明基BL2480T显示器使用体验
  4. Python在程序退出前执行代码
  5. 导致的死信的几种原因
  6. think php5 volist,volist
  7. 【建模算法】基于蚁群算法求解TSP问题(Python实现)
  8. C#读写取INI文件
  9. 企业不可忽视的数据存储和数据安全问题!
  10. python中,使用3σ原则来删除数据中的异常值