试图扫描图像但得到相同的长列表错误

时间:2015-09-09 18:30:56

标签: php

我正在尝试扫描答题纸,我在服务器上收到错误列表,因为此代码是批处理作业过程的一部分。

我的代码是:

global $CFG;

    //if ($x >= imagesx($this->image) or $x >= imagesy($this->image)) { // point is out of range

    if ($x > imagesx($this->image) or $x > imagesy($this->image)) { 
        return false; 
    }
    $rgb = imagecolorsforindex($this->image, imagecolorat($this->image, $x, $y));
    $gray = $rgb['red'] + $rgb['green'] + $rgb['blue'];

    if ($gray > $this->papergray) {
        return false;
    } else {
        return true;
    }

错误符合:

$rgb = imagecolorsforindex($this->image, imagecolorat($this->image, $x, $y));

错误是:

  

注意:imagecolorat():1520,-416超出范围   C:\ inetpub \ wwwroot \ elms \ mo d \ offlinequiz \ report \ rimport \ scanner.php on   第1090行

     

注意:imagecolorat():1520,-415超出范围   C:\ inetpub \ wwwroot \ elms \ mo d \ offlinequiz \ report \ rimport \ scanner.php on   第1090行

     

注意:imagecolorat():1520,-416超出范围   C:\ inetpub \ wwwroot \ elms \ mo d \ offlinequiz \ report \ rimport \ scanner.php on   第1090行

     

(续......)

2 个答案:

答案 0 :(得分:2)

错字:

if ($x > imagesx($this->image) or $x > imagesy($this->image)) { 
                                   ^---------^

您要进行宽度 - 宽度/宽度 - 高度比较,而不是宽度 - 宽度/高度。

最有可能的情况是,如果您指定的变量有$y,那么您永远不会收到错误,因为您的负$ y显然绝不会大于图像的高度。

答案 1 :(得分:0)

您还应该检查$ x和$ y是否> 0。在错误消息中,$ y为负数。