如果超过350x100,我如何将使用我的上传脚本上传的图像调整大小/缩小到350x100?
我的剧本:
$allowed_filetypes = array('.png','.PNG');
$filename = $_FILES['strUpload']['name'];
$ext = substr($filename, strpos($filename,'.'), strlen($filename)-1);
if(in_array($ext,$allowed_filetypes))
{
list($width, $height, $type, $attr) = getimagesize($_FILES['strUpload']['tmp_name']);
if ($width > 350 || $height > 100)
{
echo "That file dimensions are not allowed. Only 350x100 is allowed";
exit();
}
if ($_FILES['strUpload']['size'] > 2097152 )
{
echo "ERROR: Large File Size. Only less than 2mb accepted";
exit();
}
$imagename = uniqid('ff') . ".png";
move_uploaded_file ( $_FILES['strUpload']['tmp_name'], $imagename );
print ( "<script type=\"text/javascript\">" );
if(file_exists($imagename) && $_FILES['strUpload']['name'] != '')
{
print ( "self.opener.SetImageFile(\"" . $imagename . "\");" );
echo "\n";
print ( "self.opener.setInputFile(\"" . $imagename . "\");" );
}
echo "\n";
print ( "window.close();" );
echo "\n";
print ( "</script>" );
$open = new dbconnect();
$open->callDB("localhost","pema2201_william","lindberg","pema2201_siggen");
$ip = $_SERVER['REMOTE_ADDR'];
$dattum = date('Y-m-d H:i:s', time());
mysql_query("INSERT INTO piclist (ip,pic,datum) VALUES('$ip','$imagename','$dattum')") or die(mysql_error());
}
else
{
echo "WRONG FILE TYPE ONLY PNG ALLOWED"
}
答案 0 :(得分:1)
PHP有几个图像处理库。 GD library自PHP 4.3起已发货,所以我建议使用它。只需阅读文档即可找到您需要的内容。
答案 1 :(得分:0)
使用imagecopyresized - 这是一个很好的例子,说明如何在PHP手册页上使用它。
答案 2 :(得分:0)
答案 3 :(得分:0)
一般要点是为图像创建所需尺寸的新“画布”。
将上传的图像复制到新画布上,设置源宽x高(拍摄所有源图像)和目标宽x高(使用所有目标画布),偏移可用于移动图像如果你需要,可以稍微改善一下。
然后最后将它保存到需要它的位置,或将其插入到数据库字段中(这将替换你的move_uploaded_file调用)。