0

我在创建 PNG 图像的缩略图时遇到问题。

这有效:

    $src = imagecreatefromjpeg("http://www.gaze.se/".$folder.$filename);
    $rootfolder = $_SERVER['DOCUMENT_ROOT'] ;
    $tmp = imagecreatetruecolor($targ_w, $targ_h);
    imagecopyresampled($tmp, $src, 0,0,$_POST['x'],$_POST['y'],$targ_w,$targ_h,$_POST['w'],$_POST['h']);
    imagejpeg($tmp, $rootfolder.$folder.'thumb_'.$filename,100);

    imagedestroy($tmp);
    imagedestroy($src);

然后我把两个jpeg函数改成png,像这样:

    $src = imagecreatefrompng("http://www.gaze.se/".$folder.$filename);
    $rootfolder = $_SERVER['DOCUMENT_ROOT'] ;
    $tmp = imagecreatetruecolor($targ_w, $targ_h);
    imagecopyresampled($tmp, $src, 0,0,$_POST['x'],$_POST['y'],$targ_w,$targ_h,$_POST['w'],$_POST['h']);
    imagepng($tmp, $rootfolder.$folder.'thumb_'.$filename,100);

    imagedestroy($tmp);
    imagedestroy($src);

但是随后图像损坏了,当我尝试打开它时会显示此消息:

错误信息

关于如何解决这个问题的任何想法?

4

1 回答 1

7

查看http://php.net/manual/en/function.imagepng.php。对于 PNG 文件,$quality 参数应该是 0 到 9。正如@jeroen 所说,您绝对应该检查返回值。

于 2013-03-13T02:00:12.610 回答