php输出图片有问题,求高手谢谢!!!!

$image='1.jpeg';$img=GetImageSize($image);//获得数组的一些信息!Array([0]=>240[1]=>320[2]=>2[3]... $image = '1.jpeg';
$img = GetImageSize($image); //获得数组的一些信息!Array ( [0] => 240 [1] => 320 [2] => 2 [3] => width="240" height="320" [bits] => 8 [channels] => 3 [mime] => image/jpeg )
switch ($img[2]) {
case 1 :
$im = @ imagecreatefromgif($image); //将图片转化为PHP可识别的编码过程
case 2 :

$im = @ imagecreatefromjpeg($image);
case 3 :
$im = @ imagecreatefrompng($image); //$im 是个真彩图片
break;
}

$te = imagecolorallocate($im, 255, 255, 255);
$str = iconv("gbk", "utf-8", "新年垮了"); //需要将GBK转化为UTF-8才能将中文输出
imagettftext($im, 12, 9, 20, 20, $te, 'STCAIYUN.TTF', $str);
header("Content-type: image/jpeg");
imagejpeg($im);
输出
:<br />
<font size='1'><table class='xdebug-error' dir='ltr' border='1' cellspacing='0' cellpadding='1'>
<tr><th align='left' bgcolor='#f57900' colspan="5"><span style='background-color: #cc0000; color: #fce94f; font-size: x-large;'>( ! )</span> Warning: imagecolorallocate() expects parameter 1 to be resource, boolean given in D:\wamp\www\GD\hebing.php on line <i>14</i></th></tr>
<tr><th align='left' bgcolor='#e9b96e' colspan='5'>Call Stack</th></tr>
<tr><th align='center' bgcolor='#eeeeec'>#</th><th align='left' bgcolor='#eeeeec'>Time</th><th align='left' bgcolor='#eeeeec'>Memory</th><th align='left' bgcolor='#eeeeec'>Function</th><th align='left' bgcolor='#eeeeec'>Location</th></tr>
<tr><td bgcolor='#eeeeec' align='center'>1</td><td bgcolor='#eeeeec' align='center'>0.0006</td><td bgcolor='#eeeeec' align='right'>372112</td><td

等HTML代码,求解释
展开
 我来答
newchinays
2012-02-28 · TA获得超过1172个赞
知道小有建树答主
回答量:1238
采纳率:48%
帮助的人:413万
展开全部
<?php

$image = '1.jpeg';
$img = GetImageSize($image); //获得数组的一些信息!Array ( [0] => 240 [1] => 320 [2] => 2 [3] => width="240" height="320" [bits] => 8 [channels] => 3 [mime] => image/jpeg )

//var_dump($img);
switch ($img[2]) {
case 1 :
$im = imagecreatefromgif($image);break; //将图片转化为PHP可识别的编码过程
case 2 :
$im = imagecreatefromjpeg($image);break;
case 3 :
$im = imagecreatefrompng($image);break; //$im 是个真彩图片
break;
}

$te = imagecolorallocate($im, 255, 255, 255);
$str = iconv("gbk", "utf-8", "新年垮了"); //需要将GBK转化为UTF-8才能将中文输出
imagettftext($im, 12, 9, 20, 20, $te, 'STCAIYUN.TTF', $str);
header("Content-type: image/jpeg");
//imagejpeg($im);
//iconv()
//imagettftext()
?>

// 确保有这个字体文件存在 STCAIYUN.TTF
// iconv() 可以
追问
也没有给出我,准确的解决方法啊!
追答
 240 [1] => 320 [2] => 2 [3] => width="240" height="320" [bits] => 8 [channels] => 3 [mime] => image/jpeg )

switch ($img[2]) {/* Attempt to open */
case 1 :
$im = @imagecreatefromgif($image);break; //将图片转化为PHP可识别的编码过程
case 2 :
$im = @imagecreatefromjpeg($image);break;
case 3 :
$im = @imagecreatefrompng($image);break; //$im 是个真彩图片
break;
}

if(!$im) { /* See if it failed */
$im = imagecreatetruecolor(150, 30); /* Create a blank image */
$bgc = imagecolorallocate($im, 255, 255, 255);
$tc = imagecolorallocate($im, 0, 0, 0);
imagefilledrectangle($im, 0, 0, 150, 30, $bgc);
/* Output an errmsg */
imagestring($im, 1, 5, 5, "Error loading $imgname", $tc);
}
return $im;
}

$im = LoadImg('1.jpeg');
$te = imagecolorallocate($im, 255, 255, 255);
$str = iconv("gbk", "utf-8", "新年垮了"); //需要将GBK转化为UTF-8才能将中文输出
imagettftext($im, 12, 9, 20, 20, $te, 'simkai.ttf', $str);
header("Content-type: image/jpeg");
imagejpeg($im);
?>

关键一: 有字体文件 'simkai.ttf'
关键二:有图片文件'1.jpeg'
关键三:文件保存成gbk编码
关键四:如还出不来 可注释 header("Content-type: image/jpeg"); ,打开报错进行调试
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友b907c5233
2012-03-02 · TA获得超过534个赞
知道小有建树答主
回答量:263
采纳率:0%
帮助的人:231万
展开全部
使用 switch 时,请记得使用 break :

switch ($img[2]) {
case 1 :
$im = imagecreatefromgif($image);
break;
case 2 :
$im = imagecreatefromjpeg($image);
break;
case 3 :
$im = imagecreatefrompng($image);
break;
}

补充几点注意事项:
如一楼提到的,
一、你的字体文件“STCAIYUN.TTF”与该PHP文件是否在同一目录;不是的话,还得加代码以说明字体文件的位置;
二、你要读取的 1.jpeg 文件是否与该PHP文件在同一目录;
三、使用那段转码功能的前提是该PHP文件是gb码的;如果文件本身就是UTF-8的,那就没必要进行转码;
四、在输出图像后,尽量进行销毁操作,也就是在代码最后加上一句“imagedestroy($im);”;以释放占用的系统资源。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
381713677
2012-03-13 · TA获得超过445个赞
知道小有建树答主
回答量:672
采纳率:0%
帮助的人:392万
展开全部
昨天我用这个函数,居然能执行swf文件 $file_info[2] = 13 -_-!
不是说只接受gif/png/jpg嘛?求高手解答
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式