"""
import Image
image = Image.open('mozart.gif')
#for i in xrange(429,434):
# print i,0,'color', image.getpixel((i,0))
def pink():
pink_cord = []
pink = []
i,j = image.size
n = 0
for y in xrange(j):
for x in xrange(i):
if image.getpixel((x,y)) == 195:
pink_cord.append((x,y))
for i in xrange(0,len(pink_cord),5):
b = pink_cord[i:i+5]
pink.append(b)
return pink
def crop_cord():
cord = []
a = 0
b = 0
for item in pink():
i,j = item[-1]
#print i,j
c = []
if j-b ==0:
for x in xrange(a,i):
c.append((x,0))
elif j-b ==1:
for x in xrange(a,image.size[0]):
c.append((x,b))
for x in xrange(0,i):
c.append((x,j))
cord.append(c)
a = item[-1][0]
b = item[-1][1]
return cord
def reverse(cord):
a = []
c = cord
for i in xrange(len(cord)):
a.append(c.pop())
return a
img = Image.new('P',(2000,1000))
def paste(img):
col = 0
for i in crop_cord():
#i = reverse(n)
val = []
row = 0
for item in i:
val.append(image.getpixel(item))
#print val
#print val
for i in xrange(len(val)):
#print i,col
img.putpixel((i,col),val[i])
row +=1
col+=1
#print 'EEEEEEEEEEEEEEEEEEENNNNNNNNNNNNNNNNNNNNDDDDDDDDDDD'
img.show()
paste(img)
"""
import Image
def straighten(source):
target = source.copy()
for y in range(source.size[1]):
line = [source.getpixel((x, y)) for x in range(source.size[0])]
pink = line.index(195)
line = line[pink:] + line[:pink]
for x, pixel in enumerate(line):
target.putpixel((x, y), pixel)
return target
out = straighten(Image.open("mozart.gif"))
out.show()