from PIL import Image from math import * im = Image.open("BarredRock.jpg") width, height = im.size newim = Image.new("RGB", im.size) newpix = newim.load() pix = im.load() print pix[500, 500] for i in range(width): for j in range(height): r,g,b = pix[i,j] radius = sqrt(pow(width/2 - i, 2) + pow(height/2 - j, 2)) spot_radius = 300 if(radius < spot_radius): pix[i,j] = (r, g, b) else: brightness = 1 - ((radius-spot_radius) / spot_radius) if(brightness < 0): brightness = 0 pix[i, j] = tuple([int(d * brightness) for d in [r, g, b]]) for i in range(width): for j in range(height): x = i - width/2 y = j - height/2 radius = sqrt(pow(x, 2) + pow(y, 2)) theta = atan2(x,y) theta += pi/4 nx = cos(theta) * radius ny = sin(theta) * radius ni = nx + width/2 nj = ny + height/2 if(ni > 0 and ni < width and nj > 0 and nj < height): newpix[i,j] = pix[ni,nj] newim.show()