我正在尝试扫描答题纸,我在服务器上收到错误列表,因为此代码是批处理作业过程的一部分。
我的代码是:
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行
(续......)
答案 0 :(得分:2)
错字:
if ($x > imagesx($this->image) or $x > imagesy($this->image)) {
^---------^
您要进行宽度 - 宽度/宽度 - 高度比较,而不是宽度 - 宽度/高度。
最有可能的情况是,如果您指定的变量有$y
,那么您永远不会收到错误,因为您的负$ y显然绝不会大于图像的高度。
答案 1 :(得分:0)
您还应该检查$ x和$ y是否> 0。在错误消息中,$ y为负数。