Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 缩小/调整尺寸?_Php_Upload_Resize - Fatal编程技术网

Php 缩小/调整尺寸?

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)) {

如果图像的大小超过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"
}
$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']
是否可伪造)但做一些查询转义可能是明智的。