php gd2图片保存,PHP使用GD2库生成的图像无法输出的解决方法
前言
有时候我们可能随意的使用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库生成的图像无法输出的解决方法相关推荐
- PCL库使用中遇到的一些问题及解决方法
a. pcl::PointCloud对象变量 与pcl::PointCloud::Ptr 对象指针 的相互转换 #include <pcl/io/pcd_io.h> #include &l ...
- ANASYS Fluent保存的文件打不开或打开出现错误,解决方法
ANSYS Fluent保存的文件打不开或打开出现错误,解决方法 问题描述: 当我们使用ANSYS Fluent将创建的文件运行保持后,有时打开出现错误,我们会很疑惑,怎么该软件和其他软件保存方式和打 ...
- 相机模型和双目立体匹配完成一个基于KITTI立体相机采集图片的立体图像匹配程序,生成视差图像和3D点云图像
机模型和双目立体匹配完成一个基于KITTI立体相机采集图片的立体图像匹配程序,生成视差图像和3D点云图像 一.针孔相机模型 二.双目相机模型 三.OpenCV实例实现用Pangolin生成视差图像和3 ...
- 怎么把做好的ps保存成图片_PS保存图片提示“无法完成请求”,这里有4种解决方法...
经常有一些小伙伴会给我留言,在使用PS处理图片结束,将图片导出保存时会出现"不能完成请求"的提示. 这个问题困扰了很多人,虽然网上提供了一些解决方法,但并不是全部有效. 鉴于此,今 ...
- 无法右键保存 图片 html,谷歌浏览器不能保存图片怎么办_谷歌浏览器右键不能保存图片的解决方法-系统城...
在使用谷歌浏览器浏览网页时,如果碰到了自己喜欢的图片我们一般都会保存下来.然而有的网友却表示说,自己的谷歌浏览器出现了右键不能保存图片的情况,不清楚怎么办很是影响自己的使用,那么对此今天本文就来教大家 ...
- QImage/QPixmap加载图片失败(宽和高都为0)的两种解决方法
先看现象,这里有一张图片test.png,windows照片查看器可以正常打开 但是用QImage加载时 QString filePath = qApp->applicationDirPath( ...
- 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 ...
- android bitmap oom 最新处理办法,【移动开发】Android中图片过大造成内存溢出,OOM(OutOfMemory)异常解决方法...
当我们在做项目过程中,一遇到显示图片时,就要考虑图片的大小,所占内存的大小,原因就是Android分配给Bitmap的大小只有8M,试想想我们用手机拍照,普通的一张照片不也得1M以上,所以androi ...
- html内容被背景图片遮住怎么办_div被iframe遮住的几种情况及解决方法
类似结构: 复制代码代码如下: http://caibaojian.com">> 第一种:透明背景被遮住 当div使用透明的背景时,无论是使用(opacity或者rgba格式), ...
最新文章
- 根据CPU核数合理设置线程池大小
- C++对C的函数扩展
- matlab程序设计实践,MATLAB程序设计实践(第二题)
- 机器学习:正则化原理总结
- Oracle中ascii为0的陷阱
- 转正后的感悟(对正在实习的朋友的建议吧)
- libpcap 库使用(二)
- WebLogic Clustering Overview Slides
- 怎样在html应用样式表,html – 如何仅将CSS样式应用于文本
- 微信小程序2:网易云音乐(完整版)
- JavaScript中三元运算符
- 微信公众号开发移动端应用
- php 问卷调查,php 问卷调查结果统计
- Maven 之 settings.xml 文件详解
- 听罗辑思维关于商业模式的思考
- 职场心理 自述-共勉
- Android记事本定时功能,安卓手机上怎么使用日历记事本?
- Axialis IconWorkshop图标制作软件一次性制作多个尺寸图标ico
- python小游戏毕设 仿八分音符的声控小游戏设计与实现 (源码)
- 基于4G无线路由器的配电网双路交流电远程监测案例