Php 从文件夹中获取图像输入,并在调整大小后将其存储到输出文件夹
我需要从文件夹中获取图像序列作为输入,调整大小后,调整大小的图像应存储在输出文件夹中。我写了代码。但在我的代码中,在调整图像大小后,输出文件夹只有一个黑色图像 若要调试此代码,请创建输入和输出文件夹,并在输入文件夹中放置一些gif图像,然后在输出文件夹中查看输出。请帮忙Php 从文件夹中获取图像输入,并在调整大小后将其存储到输出文件夹,php,image-processing,Php,Image Processing,我需要从文件夹中获取图像序列作为输入,调整大小后,调整大小的图像应存储在输出文件夹中。我写了代码。但在我的代码中,在调整图像大小后,输出文件夹只有一个黑色图像 若要调试此代码,请创建输入和输出文件夹,并在输入文件夹中放置一些gif图像,然后在输出文件夹中查看输出。请帮忙 <?php $dir = opendir("input/"); $i = 0; while ($imgfile = readdir($dir)) { if ($imgfile != "." &&am
<?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,以便在默认情况下这是行为(我相信是这样),然后在顶部对其进行修改,以便在生产时不会这样做。