Php 缩小/调整尺寸?
如果图像的大小超过350x100,如何调整/缩小使用上载脚本上载的图像的大小至350x100 我的剧本:Php 缩小/调整尺寸?,php,upload,resize,Php,Upload,Resize,如果图像的大小超过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)) {
$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"
}
$allowed_filetypes=array('.png','.png');
$filename=$_文件['strUpload']['name'];
$ext=substr($filename,strpos($filename,“.”),strlen($filename)-1);
if(在数组中($ext,$allowed\u文件类型))
{
列表($width,$height,$type,$attr)=getimagesize($_文件['strUpload']['tmp_名称]]);
如果($width>350 | |$height>100)
{
echo“不允许文件维度,只允许350x100”;
退出();
}
如果($_文件['strUpload']['size']>2097152)
{
echo“错误:文件大。仅接受小于2mb的文件”;
退出();
}
$imagename=uniqid('ff').“.png”;
移动上传的文件($文件['strUpload']['tmp\u name'],$imagename);
打印(“”);
如果(文件存在($imagename)&&$\u文件['strUpload']['name']!='')
{
打印(“self.opener.SetImageFile(\”.$imagename.\”);”;
回音“\n”;
打印(“self.opener.setInputFile(\”.$imagename.\”;”);
}
回音“\n”;
打印(“window.close();”;
回音“\n”;
打印(“”);
$open=new dbconnect();
$open->callDB(“localhost”、“pema2201_-william”、“lindberg”、“pema2201_-siggen”);
$ip=$\u服务器['REMOTE\u ADDR'];
$dattum=日期('Y-m-d H:i:s',时间());
mysql_查询(“插入piclist(ip、pic、DATAM)值(“$ip”、“$imagename”、“$dattum”)或die(mysql_错误());
}
其他的
{
echo“仅允许PNG文件类型错误”
}
使用-在PHP手册页面上有一个很好的示例说明如何使用它。PHP有几个图像处理库。PHP4.3已经发布了,所以我建议使用它。只要阅读文档就可以找到你需要的东西。看看几天前别人问的问题
这不仅解释了它是如何做到的,而且也解释了它是如何以一种有效的方式做到的。(应在GD库上使用ImageMagick)
希望这会有所帮助。一般的要点是创建一个新的“画布”,使图像具有所需的尺寸 获取上传的图像并将其复制到新画布上,设置源宽度x高度(获取所有源图像)和目标宽度x高度(使用所有目标画布),如果需要,可以使用偏移量将图像移动一点
最后,将其保存在需要的地方,或将其插入数据库字段(这将替换您的move\u upload\u file调用)。也许您应该在每行前面用四个空格格式化代码,以使其更清晰。我不确定这些东西是如何工作的(即
$\u SERVER['REMOTE\u ADDR']
是否可伪造)但做一些查询转义可能是明智的。