Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/255.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 颜色提取脚本-ForEach错误_Php_Foreach - Fatal编程技术网

Php 颜色提取脚本-ForEach错误

Php 颜色提取脚本-ForEach错误,php,foreach,Php,Foreach,因此,我从互联网上下载并编辑了一个脚本,以提取图像并找出其中包含的十六进制值及其百分比: 脚本如下: <?php $delta = 5; $reduce_brightness = true; $reduce_gradients = true; $num_results = 5; include_once("colors.inc.php"); $ex=new GetMostCommonColors(); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD

因此,我从互联网上下载并编辑了一个脚本,以提取图像并找出其中包含的十六进制值及其百分比:

脚本如下:

<?php
$delta = 5;
$reduce_brightness = true;
$reduce_gradients = true;
$num_results = 5;

include_once("colors.inc.php");
$ex=new GetMostCommonColors();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<title>Colour Verification</title>

</head>
<body>
    <div id="wrap">
    <img src="http://www.image.come/image.png" alt="test image" />
    <?php
        $colors=$ex->Get_Color("http://www.image.come/image.png", $num_results, $reduce_brightness, $reduce_gradients, $delta);
        $success = true;
        foreach ( $colors as $hex => $count ) {
            if ($hex !== 'e6af23') {$success = false; }
        if ($hex == 'e6af23' && $count > 0.05) {$success = true; break;}
        }

        if ($success == true) { echo "This is the correct colour. Success!"; } else { echo "This is NOT the correct colour. Failure!"; }


?>
    </div>

</body>
</html>

颜色验证
下面是指向文件colors.inc.php的pastebin链接

现在,如果我使用服务器上的一个图像,那么脚本工作得非常好,例如在Get_Color函数中使用/image.png。但是,如果我尝试使用来自另一个网站的图像(包括),则脚本将不再工作,并出现以下错误:

警告:为中的foreach()提供的参数无效。。。第22行


有人能看到一种方式,我将能够热链接到图像,因为这是使用脚本的全部要点

该错误表明,
Get\u Color
返回的值不是可以迭代的有效对象,可能不是集合。您需要知道
Get_Color
如何在内部工作,以及当它没有得到想要的东西时返回什么

同时,您可以从外部url下载[使用PHP]图像到您的站点,并将其下载到所需的文件夹中,然后从那里读取图像

$image = "http://www.image.come/image.png";
download($image, 'folderName'); //your custom function
dnld_image_name = getNameOfImage();

$colors=$ex->Get_Color("/foldername/dnld_image_name.png");

顺便问一下,您确认图像url是否正确了吗?

该错误表明由
Get\u Color
返回的值不是可以迭代的有效对象,可能不是集合。您需要知道
Get_Color
如何在内部工作,以及当它没有得到想要的东西时返回什么

同时,您可以从外部url下载[使用PHP]图像到您的站点,并将其下载到所需的文件夹中,然后从那里读取图像

$image = "http://www.image.come/image.png";
download($image, 'folderName'); //your custom function
dnld_image_name = getNameOfImage();

$colors=$ex->Get_Color("/foldername/dnld_image_name.png");

顺便问一下,您确认图像url正确吗?

您必须将文件下载到服务器,并将其完整文件名作为
$img
参数传递给方法
Get\u Color($img)


因此,您需要研究另一个So问题:

您必须将文件下载到服务器,并将其完整文件名作为
$img
参数传递给方法
Get\u Color($img)


因此,您需要研究另一个So问题:

您不能先下载图像吗?问题是,它根据输入的用户名从服务器上动态提取图像,然后根据颜色检查提取的图像是否包含特定图像。有没有办法将抓取的图像下载到我可以链接到的文件夹中?你不能先下载图像吗?关键是它会根据输入的用户名从服务器上动态提取图像,然后根据颜色检查提取的图像是否包含某个图像。有没有办法让这些抓取的图片下载到一个文件夹,然后我可以链接到?我不知道这是否会在我的情况下工作。我试图保存的图像没有文件扩展名,因为它是生成的图像。示例:这样我就可以让脚本将一个normal.png图像保存到一个文件夹中,这样就可以了,但是我如何才能将上面的图像保存为.png呢?最后使用这种方法将每个图像下载到服务器:)我不确定这在我的情况下是否有效。我试图保存的图像没有文件扩展名,因为它是生成的图像。示例:这样我就可以让脚本将normal.png图像保存到文件夹中,这是可行的,但我如何将上面的图像保存为.png?最终使用这种方法将每个图像下载到服务器:)我如何将其用于这样的文件:我需要保存在该页面上生成的图像。我认为您的响应是二进制的,因此您必须以二进制文件并保存到文件中。u
fopen
和其他文件api应该能够帮助我如何将其用于这样的文件:我需要保存在该页面上生成的图像。在这里,我认为您的响应是二进制的,因此您必须将内容作为二进制文件保存到文件中。u
fopen
和其他文件api应该可以帮忙