繁体   English   中英

调整图像大小后出现黑屏

[英]Getting a Black screen after image resizing

我必须调整上载的图像的大小。按比例上载的图像,但是当我们尝试调整大小时,显示黑屏的高度和宽度已调整。我正在使用以下代码来调整大小

     if($_SERVER["REQUEST_METHOD"] == "POST")
 {
        $image =$_FILES["file"]["name"];
 $uploadedfile = $_FILES['file']['tmp_name'];

  if ($image) 
  {
  $filename = stripslashes($_FILES['file']['name']);
        $extension = getExtension($filename);
  $extension = strtolower($extension);
 if (($extension != "jpg") && ($extension != "jpeg") 

&& ($extension != "png") && ($extension != "gif")) 
  {
echo ' Unknown Image extension ';
$errors=1;
  }
 else
{
   $size=filesize($_FILES['file']['tmp_name']);

if ($size > MAX_SIZE*1024)
{
 echo "You have exceeded the size limit";
 $errors=1;
}

if($extension=="jpg" || $extension=="jpeg" )
{
$uploadedfile = $_FILES['file']['tmp_name'];
$src = imagecreatefromjpeg($uploadedfile);
}
else if($extension=="png")
{
$uploadedfile = $_FILES['file']['tmp_name'];
$src = imagecreatefrompng($uploadedfile);
}
else 
{
$src = imagecreatefromgif($uploadedfile);
}

list($width,$height)=getimagesize($uploadedfile);

$newwidth=60;
$newheight=($height/$width)*$newwidth;
$tmp=imagecreatetruecolor($newwidth,$newheight);

$newwidth1=25;
$newheight1=($height/$width)*$newwidth1;
$tmp1=imagecreatetruecolor($newwidth1,$newheight1);

imagecopyresampled($tmp,$src,0,0,0,0,$newwidth,$newheight,

 $width,$height);

imagecopyresampled($tmp1,$src,0,0,0,0,$newwidth1,$newheight1, 

$width,$height);

$filename = "images/". $_FILES['file']['name'];
$filename1 = "images/small". $_FILES['file']['name'];

imagejpeg($tmp,$filename,100);
imagejpeg($tmp1,$filename1,100);

imagedestroy($src);
imagedestroy($tmp);
imagedestroy($tmp1);
}
}
}

请帮我调整图像大小

我已经进行了必要的更改,以使其在WAMP服务器上运行。 更改在代码中注释。

<form action="upload.php" method="post" enctype="multipart/form-data">
<h1><b>Uploader stub</b></h1>
<input type="file" name="filename"><br>
<input type="hidden" name="action" value="upload">
<input type="submit" value="Upload File">
</form>
<?php
define("MAX_SIZE", 200); // Missing constant

if($_SERVER["REQUEST_METHOD"] == "POST") {
    $image = $_FILES["filename"]["name"]; // The _FILES var does not contain an array named file, I have changed that to filename
    $uploadedfile = $_FILES['filename']['tmp_name'];

    if ($image) {
        $filename = stripslashes($_FILES['filename']['name']);

        //$extension = getExtension($filename); // Use PHP built in path parser.
        $path_parts = pathinfo($filename);
        $extension = $path_parts['extension'];

        $extension = strtolower($extension);
        if (($extension != "jpg") && ($extension != "jpeg") && ($extension != "png") && ($extension != "gif")) {
            echo ' Unknown Image extension ';
            $errors = 1;
        }
        else {
            $size=filesize($_FILES['filename']['tmp_name']);

            if ($size > MAX_SIZE * 1024) {
                echo "You have exceeded the size limit";
                $errors = 1;
            }

            if($extension == "jpg" || $extension == "jpeg" ) {
                //$uploadedfile = $_FILES['filename']['tmp_name']; // Not needed
                $src = imagecreatefromjpeg($uploadedfile);
            }
            else if($extension == "png") {
                //$uploadedfile = $_FILES['filename']['tmp_name']; // Not needed
                $src = imagecreatefrompng($uploadedfile);
            } 
            else {
                $src = imagecreatefromgif($uploadedfile);
            }

            list($width,$height) = getimagesize($uploadedfile);

            $newwidth = 60;
            $newheight =($height/$width)*$newwidth;
            $tmp = imagecreatetruecolor($newwidth,$newheight);

            $newwidth1 = 25;
            $newheight1 = ($height/$width)*$newwidth1;
            $tmp1 = imagecreatetruecolor($newwidth1,$newheight1);

            imagecopyresampled($tmp, $src, 0, 0, 0, 0, $newwidth, $newheight,

             $width,$height);

            imagecopyresampled($tmp1, $src, 0, 0, 0, 0, $newwidth1,$newheight1, 

            $width,$height);

            $filename = "images/". $_FILES['filename']['name'];
            $filename1 = "images/small/". $_FILES['filename']['name'];

            imagejpeg($tmp,$filename, 100);
            imagejpeg($tmp1,$filename1, 100);

            imagedestroy($src);
            imagedestroy($tmp);
            imagedestroy($tmp1);
        }
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM