当前位置:Gxlcms > PHP教程 > 图片水印输出不能正常显示问题!

图片水印输出不能正常显示问题!

时间:2021-07-01 10:21:17 帮助过:25人阅读

$img = "img/iphone.jpg";$info = getimagesize($img);//获取图片信息$type = image_type_to_extension($info[2],false);//图片后缀$fun = "imagecreatefrom{$type}";//确定后缀选择相应函数$image = $fun($img);//利用函数接入图片地址$img_mark = "img/ulogo.png";//设置水印路径$info_mark = getimagesize($img_mark);//获取水印图片基本信息$type_mark = image_type_to_extension($info_mark[2],false);//获取图片类型$fun_mark = "imagecreatefrom{$type_mark}";//$water = $fun_mark($img_mark);imagecopymerge($image, $water, 20, 30, 0, 0, $info_mark[0],$info_mark[1],30);//合并图片imagedestroy($water);header('Content-type:'.$info['mime']);//告诉浏览器是图片
输出$func = "image{$type}";//选择相应函数调用$func($image);//浏览器输出图片$func($image,"newimg.".$type);//保存图片imagedestroy($image);//销毁图片

$func($image);
怎我这里不能输出图片在浏览器上显示?但又能保存图片到根目录下奇怪!!!


回复讨论(解决方案)

不能显示是什么意思?一个叉?

去掉程序文件的 BOM 头和多余的空格、空行

不能显示是什么意思?一个叉?

去掉程序文件的 BOM 头和多余的空格、空行



果真是BOM在作怪,设了无BOM格式URF8编码就可以了。为何会这样呢,可以解析下吗?

BOM 是若干个字符(utf-8是3个),但他并不属于图片的内容
不是图片的内容 加上 图片的内容,结果显然就不是图片了

BOM 是若干个字符(utf-8是3个),但他并不属于图片的内容
不是图片的内容 加上 图片的内容,结果显然就不是图片了



那怎么防止BOM的出现?

有时页面中又没有BOM出现,有时又会出现真奇怪~~~难道是工具问题?

BOM 头是你偏好 所谓的国际化 造成的
其实 BOM 不仅会影响图片的输出、文件的下载,还会影响页面的布局和 json 数据的解码
如果你一定要用 utf-8 编码保存文件,那么就一定要养成 无BOM 的习惯
其实在程序中很少有中文字符串常量的,所以并不需要保存为 utf-8 的

人气教程排行