项目场景:
用php 生成二维码,加上其他商品信息拼接成类似于商品铭牌的功能
问题描述:
所有功能做完了,但是除了封装方法返回的数据之外,浏览器里边还输出一堆莫名其妙的乱码,以png 开头的乱码。
原因分析:
php 的 imagepng(); 方法的参数问题,如果只写第一个参数,则表明是要输出到浏览器里边,如果加上第二个参数,则表明是输出到文件夹里边。对应的生成方法加上第二个参数就可以了。
解决方案:
<?php
//创建一个新图形
$image = imagecreatetruecolor(400,100);
//分配颜色
$bgColor = imagecolorallocate($image,250,250,250);
$black = imagecolorallocate($image,0,0,0);
//填充背景
imagefill($image,0,0,$bgColor);
//指定imagettftext()函数使用的字体
$font = “simhei.ttf”;
//字义要输出的中文字符串
$string = “这是PNG图形”;
//对中文字符进行编码
$codeString = iconv(“GB2312″,”UTF-8″,$string);
//使用imagettftext()函数输出文字
imagettftext($image,20,0,30,30,$black,$font,$codeString);
//把PNG图形保存为文件(注意这里的区别)**
imagepng($image,”pngfile.png”);
//把PNG图形输出到浏览器(注意这里的区别)**
header(“Content-type: image/png”);
imagepng($image);
//释放资源
imagedestroy($image);
?>