这段代码实现oil paint图像特效for($i=$nY; $i<$nY+$nH; $i++)
{
            for($j=$nX; $j<$nX+$nW; $j++) 
{
     $intensities = array();
 $red = array();
         $green = array();
         $blue = array();
 for ( $k = 0; $k < 256; $k++ )
{
     $intensities[$k] = 0;
 $red[$k] = 0;
 $green[$k] = 0;
 $blue[$k] = 0;
}
 
     for ($m = -5;$m < 6;$m++)
 {
     $t = $m+$i;
 if (($t < $nY) || ($t >= ($nY+$nH)))
    continue;
     for ($n = -5;$n < 6;$n++)
 {
       $t = $n+$j;
       if (($t < $nX) || ($t >= ($nX+$nW)))
          continue;
   
   $pos = imagecolorat($hOldFile, $n+$j, $m+$i);
           list($r, $g, $b) = array((($pos>>16)&0xFF), (($pos>>8)&0xFF), ($pos&0xFF));
   $gst = (int)($r*0.15 + $g*0.5 + $b*0.35);
if ($gst>255)
{
$gst = 255;
}
$intensities[$gst]++;
$red[$gst]+= $r;
$green[$gst]+= $g;
$blue[$gst]+= $b;

//WriteLog("ddd.txt",$intensities[$gst].",".$red[$gst].",".$green[$gst].",".$blue[$gst].",".$gst);WriteLog("ddd.txt","\r\n");
 }
 }
$maxIntensity = 0;
$kk = 0;
                
for ( $k2 = 0; $k2 < 256; $k2++ )
{
if ( $intensities[$k2] > $kk )
{
$maxIntensity = $k2;
$kk = $intensities[$k2];
}
}
// set destination pixel
if ($intensities[$maxIntensity] == 0)
    $inter = 1;

$r1 = $red[$maxIntensity]/$inter;
$g1 = $green[$maxIntensity]/$inter;
$b1 = $blue[$maxIntensity]/$inter;
$col = imagecolorallocate($hNewFile,$r1,$g1,$b1);
    imagesetpixel($hNewFile, $j, $i, $col);
}
}
程序依次对每个像素点处理,现在的问题是处理一些点以后就失败了,不再循环,花费几天时间实在找不出哪里错误
数组的定义 使用有问题吗?