刚发表就试出来了… 路径要么写成 '../image/photo/finish'.$type
要么写成'photo/finish'.$type
$type=image_type_to_extension(info[2],false);
$type2=image_type_to_extension(info1[2],false); 错误
header("content-type:".$info['mime']);
$info前面是点
imagecopymerge($image, $water, 20, $y1, 0, 0, $info2[0], $info2[1], 100);这段代码本身没错,他是说 imagecopymerge()函数的第一个参数没取到数据不合法,你检查下前面的$image
其实吧是因为imagecopymerge这个函数搞的鬼,如果用imagecopy函数则不会有这种问题,但是imagecopy不可以调整透明度。
也就是说imagecopymerge会忽略原始图片的透明度,而imagecopy保留了原始图片的透明度。
imagecopymerge可以调整透明度,而imagecopy不可以
那么我既要保留原始图片的透明度又要合成后的logo图片的透明度可以调整,怎么办呢?
有一种方法,就是创建一个画布,分别把背景图片与logo用imagecopy“塞”进一画布里,在把画布放在原始背景图片的上面,调透明度,效果就出来了,光说可能会听着糊涂,我上我写的代码吧。
function imagecopymerge_alpha($dst_im, $src_im, $dst_x, $dst_y, $src_x, $src_y, $src_w, $src_h, $pct){ $cut = imagecreatetruecolor($src_w, $src_h); imagecopy($cut, $dst_im, 0, 0, $dst_x, $dst_y, $src_w, $src_h); imagecopy($cut, $src_im,0, 0, $src_x, $src_y, $src_w, $src_h); imagecopymerge($dst_im, $cut, $dst_x, $dst_y, $src_x, $src_y, $src_w, $src_h, $opacity); }
希望有所帮助
可能是你没有配置php.ini文件中的GD库,或者你的WAMP 或XAMP 的问题。
先确定一下是不是目录读写权限不正确,可以尝试sudo chmod -R 755 目录地址
应该是你有错误提示,导致图片显示错误,你可以用
error_reporting(E_ALL^E_NOTICE^E_WARNING);
把错误提示关闭,就能显示了
header 中,content-type 后面缺一个冒号
header 写的不对吧?