Php 使用imagepng后的巨大滞后
我有一个场景,用户上传一个图像文件。我去掉背景色(定义为左上角的颜色)…并用imagepng保存到文件中 我最初尝试回显一些直接调用该文件名的html,但要显示图像需要7分钟(这是一个6k文件,没什么特别的)。我了解到,您不应该尝试在同一请求中使用发布的数据,因此,我没有输出图像,而是将其更改为指向第二个页面的链接,该页面将获得图像 但同样的滞后也发生了。我没有做过太多的图像处理,所以感谢任何关于我哪里出了问题的指导,或者加快速度的方法。我的最终目标是用户一次上传10多张图片 这是主要代码,Php 使用imagepng后的巨大滞后,php,image-processing,Php,Image Processing,我有一个场景,用户上传一个图像文件。我去掉背景色(定义为左上角的颜色)…并用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)…对我来说,这听起来像是主机提供商的问题。可能他们要求图像文件通过缓存层,而缓存没有检查存储,这导致了延迟。你手动上传的图像也会发生同样的情况吗?我刚和他们通完电话,他们也会立即收到结果……我的本地机器/环境一定出了问题(我在一个高度安全的位置)。谢谢你的帮助