连接为:http://www.pythonchallenge.com/pc/return/mozart.html
登陆账号密码:(huge,file)
——————————————————————————————————————————
一副混乱的图片,
标题:
<title>let me get this straight</title>
这是让我们把图片整理对齐
那么如何整理,不知道。百度一下
————————————————————————————————————————————
第一种方法:
from PIL import Image,ImageDraw
#获取原图像新建大小相同的图片
im = Image.open('mozart.gif')
w,h = im.size
nim = Image.new('RGB',im.size,0)
#图中红点的颜色值
magenta = 195
#从每行的遇到的第一个红条开始平移
for i in range(h):
for j in range(w):
if im.getpixel((j,i))==magenta:
#把第一个红条右边的所有像素左移
[nim.putpixel((k,i),im.getpixel(((k+j)%w,i))) for k in range(w)]
break
nim.save('out16.gif')
——————————————————————————————————————————————————————————
这个方法我完全是参考一个哥们。的开始没明白什么意思,不会做
————————————————————————————————————————————————————
第二种方法:
from PIL import Image,ImageDraw
#获取原图像新建大小相同的图片
im = Image.open('mozart.gif')
w,h = im.size
#图中红点的颜色值
magenta = 195
#获取每一行第一个红条并保存在列表之中
bars=[]
for j in range(h):
for i in range(w - 5):
#红条长度大概在五个像素
if im.getpixel((i,j)) == magenta and im.getpixel((i+4,j)) == magenta:
bars.append((i,j))
print(bars[:10])
#从每行的遇到的第一个红条开始平移
shift = Image.new(im.mode, (w * 2, h), 0)
shift.palette = im.palette # share colour table,分享颜色板
for j in range(h):
for i in range(w):
shift.putpixel((i + w - bars[j][0], j), im.getpixel((i,j)))
shift.save('shift.png')
——————————————————————————————————————————————————————————————————————————
在看完这两种方法后,我才发现,原来每行就一个红条,
所以结果就是:romance