为什么调整大小后的imagepng会创建一个黑色图像?

时间:2014-01-16 16:54:23

标签: php image transparency

我正在尝试使用代码调整图片大小:

list($width,$height,$type,$attr)= getimagesize($_FILES['upload'.$num]['name']);
                $source = imagecreatefrompng($_FILES['upload'.$num]['name']);
                $thumb = imagecreatetruecolor(445,320);
                imagealphablending($thumb, false);
                imagesavealpha($thumb, true);  
                    imagecopyresampled($thumb,$source,0,0,0,0,445,320,$width,$height);
                imagepng($thumb,"../public/img/".$Nome,8);

but the output is always a black image..  anyone know why? 

由于

1 个答案:

答案 0 :(得分:1)

$_FILES['upload'.$num]['name']只是上传的文件名,如“flower.jpg”,不是文件的完整路径。

$_FILES['upload'.$num]['tmp_name']是上传到服务器上的真实文件的真正绝对路径(临时目录中的某个地方)


您的代码应如下所示:

list($width,$height,$type,$attr)= getimagesize($_FILES['upload'.$num]['tmp_name']);
$source = imagecreatefrompng($_FILES['upload'.$num]['tmp_name']);

始终尝试调试您的第一个。使用print_r($_FILES)var_dump($_FILES)等函数调试变量。

$_FILES变量问题外,您的代码应该可以正常运行:Demo