Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.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_Image Processing - Fatal编程技术网

Php 从文件夹中获取图像输入,并在调整大小后将其存储到输出文件夹

Php 从文件夹中获取图像输入,并在调整大小后将其存储到输出文件夹,php,image-processing,Php,Image Processing,我需要从文件夹中获取图像序列作为输入,调整大小后,调整大小的图像应存储在输出文件夹中。我写了代码。但在我的代码中,在调整图像大小后,输出文件夹只有一个黑色图像 若要调试此代码,请创建输入和输出文件夹,并在输入文件夹中放置一些gif图像,然后在输出文件夹中查看输出。请帮忙 <?php $dir = opendir("input/"); $i = 0; while ($imgfile = readdir($dir)) { if ($imgfile != "." &&am

我需要从文件夹中获取图像序列作为输入,调整大小后,调整大小的图像应存储在输出文件夹中。我写了代码。但在我的代码中,在调整图像大小后,输出文件夹只有一个黑色图像

若要调试此代码,请创建输入和输出文件夹,并在输入文件夹中放置一些gif图像,然后在输出文件夹中查看输出。请帮忙

<?php
$dir = opendir("input/");
$i   = 0;
while ($imgfile = readdir($dir))
  {
    if ($imgfile != "." && $imgfile != "..")
      {
        $imgarray[$i] = $imgfile;
        $newwidth     = 240; //new width
        $newheight    = 320; //new height
        $uploadedfile = $imgarray[$i];
        $src          = imagecreatefromgif($uploadedfile);
        list($width, $height) = getimagesize($uploadedfile);
        $tmp = imagecreatetruecolor($newwidth, $newheight);
        imagecopyresampled($tmp, $src, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
        $filename = "output/" . $imgarray[$i];
        imagegif($tmp, $filename, 100);
        imagedestroy($src);
        imagedestroy($tmp);
        $i++;
      }
  }
closedir($dir);
?>

您的错误在这一行:

$uploadedfile = $imgarray[$i];
您的图像位于输入文件夹中,但这只是将变量设置为图像名称,因此当您尝试调用
imagecreatefromfromgif
getimagesize
时,它找不到图像,从而导致您得到的黑色输出。要修复此问题,只需在名称前添加正确的目录:

$uploadedfile = "input/" . $imgarray[$i];
通过此更改进行测试,效果良好

作为补充说明,我能够通过错误报告快速找到您的代码的错误:

error_reporting(E_ALL);
ini_set('display_errors', 1);

通过这样做,您将收到警告消息,并且您可能不会看到其他警告消息。这些可能是快速修复和长时间撕头发之间的区别。在调试时使用它。

请帮我使用:错误报告(E\u ALL);ini设置(“显示错误”,1);我如何使用它或在哪个部分添加代码?我以前不使用它。您可以在脚本的最顶端添加代码。您还可以修改php.ini,以便在默认情况下这是行为(我相信是这样),然后在顶部对其进行修改,以便在生产时不会这样做。