Php 使用imagepng后的巨大滞后

Php 使用imagepng后的巨大滞后,php,image-processing,Php,Image Processing,我有一个场景,用户上传一个图像文件。我去掉背景色(定义为左上角的颜色)…并用imagepng保存到文件中 我最初尝试回显一些直接调用该文件名的html,但要显示图像需要7分钟(这是一个6k文件,没什么特别的)。我了解到,您不应该尝试在同一请求中使用发布的数据,因此,我没有输出图像,而是将其更改为指向第二个页面的链接,该页面将获得图像 但同样的滞后也发生了。我没有做过太多的图像处理,所以感谢任何关于我哪里出了问题的指导,或者加快速度的方法。我的最终目标是用户一次上传10多张图片 这是主要代码,查看

我有一个场景,用户上传一个图像文件。我去掉背景色(定义为左上角的颜色)…并用imagepng保存到文件中

我最初尝试回显一些直接调用该文件名的html,但要显示图像需要7分钟(这是一个6k文件,没什么特别的)。我了解到,您不应该尝试在同一请求中使用发布的数据,因此,我没有输出图像,而是将其更改为指向第二个页面的链接,该页面将获得图像

但同样的滞后也发生了。我没有做过太多的图像处理,所以感谢任何关于我哪里出了问题的指导,或者加快速度的方法。我的最终目标是用户一次上传10多张图片

这是主要代码,
查看页面.html
只是

<?php
if($_FILES['test']['tmp_name']){
    //some validation is necessary, this is just a proof of concept for a friendly user test
    if($_FILES['test']['type']=="image/png"){
        $im = imagecreatefrompng($_FILES['test']['tmp_name']);
    }
    if(($_FILES["file"]["type"] == "image/jpeg") || ($_FILES["file"]["type"] == "image/pjpeg")){
        $im = imagecreatefromjpeg($_FILES['test']['tmp_name']);
    }
    if($_FILES['test']['type']=="image/gif"){
        $im = imagecreatefromgif($_FILES['test']['tmp_name']);
    }
    //determine background RGB
    $rgb = imagecolorat($im, 0, 0);
    $r = ($rgb >> 16) & 0xFF;
    $g = ($rgb >> 8) & 0xFF;
    $b = $rgb & 0xFF;
    $background = imagecolorallocate($im, $r, $g, $b);
    // Make the background transparent
    imagecolortransparent($im, $background);
    imagepng($im,'target.png');
    imagedestroy($im);
    echo "<a href=\"viewing_page.html\">View</a>";
    //echo "<img src=\"target.png\"/>"; //-----------this was my first (and preferred) approach
    }
else{
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body bgcolor="#00CCFF">
    <form action="" method="post" enctype="multipart/form-data">
    <input name="test" type="file" />
    <input type="submit" value="Submit" />
    </form>
    </body>
</html>
    <?php
}
?>

无标题文件

imagepng生成.png文件真的花了这么长时间吗?还是您的web服务器在图像运行7分钟后才为其提供服务?在我的系统(Linux、PHP5.3.6)上,通过您的代码,图像立即可用

上传小图片需要多长时间?具体点!422秒下载,0.25秒上传。我原以为下面的答案是有效的,但现在发现,即使图像很快返回,支持的JS文件也会延迟422秒。好的,图像会立即创建,我可以在服务器上看到它(通过dreamweaver或主机上的phpadmin),但我猜它没有得到充分的服务,因为我在这个脚本中也无法访问它,或者直接在一个新窗口中…这就是为什么我认为imagepng可能有问题…(PHP5.2.17,linux)…对我来说,这听起来像是主机提供商的问题。可能他们要求图像文件通过缓存层,而缓存没有检查存储,这导致了延迟。你手动上传的图像也会发生同样的情况吗?我刚和他们通完电话,他们也会立即收到结果……我的本地机器/环境一定出了问题(我在一个高度安全的位置)。谢谢你的帮助