from PIL import Image def getErr(r,g,b,stdCol): r-=stdCol[0] g-=stdCol[1] b-=stdCol[2] return r*r + g*g + b*b def getNear(r,g,b, curPal): ind=0 err=getErr(r,g,b,curPal[0]) for i in range(1,len(curPal)): cur=getErr(r,g,b,curPal[i]) if (cur 1: errArr[bInd][i+1] = addVal(errArr[bInd][i+1], r_err, g_err, b_err, 2.0) errArr[aInd][i+1] = addVal(errArr[aInd][i+1], r_err, g_err, b_err, 7.0) elif i == dW - 1: errArr[bInd][i-1] = addVal(errArr[bInd][i-1], r_err, g_err, b_err, 7.0) errArr[bInd][i] = addVal(errArr[bInd][i], r_err, g_err, b_err, 9.0) else: errArr[bInd][i-1] = addVal(errArr[bInd][i-1], r_err, g_err, b_err, 3.0) errArr[bInd][i] = addVal(errArr[bInd][i], r_err, g_err, b_err, 5.0) errArr[bInd][i+1] = addVal(errArr[bInd][i+1], r_err, g_err, b_err, 1.0) errArr[aInd][i+1] = addVal(errArr[aInd][i+1], r_err, g_err, b_err, 7.0) else: pixels[i, j] = tuple(curPal[(i + j) % 2]) # checkerboard return pDst