这是从一个课堂作业从像素弹奏的音符:的Python(Jython的)的图片
这个程序是关于倾听的颜色。我们将把照片当作钢琴乐谱。 编写一个名为listenToPicture的函数,将一张图片作为参数。它首先显示图片。接下来,它将遍历每第四行中的每个第4个像素,并执行以下操作。它将计算像素的红色,绿色和蓝色等级的总和,将其除以9,然后将结果添加到24.该数字将是playNote播放的音符编号。 这意味着像素越暗,音符越低;像素越亮,音符越高。它将以全音量(127)播放该音符十分之一秒(100毫秒)。每次移动到新行时,它都会在控制台上输出行号(y值)。 您的主要功能将要求用户选择一个带有图片的文件。它将打印要播放的音符数(这是图像中的像素数除以16;为什么?)。然后它会调用listenToPicture函数。
好吧我编辑我到目前为止,唯一我没有想出(我相信)是如何打印主要功能的笔记数量。顺便说一句,感谢所有帮助过我的人。你们太棒了。有没有地方可以捐赠给这个网站?
def main():
pic=makePicture(pickAFile())
show (pic)
listenToPicture(pic)
def listenToPicture(pic):
w=getWidth(pic)
h=getHeight(pic)
for y in range(0,h,4):
printNow(str(y))
for x in range (0,w,4):
px=getPixel(pic,x,y)
r=getRed(px)
g=getGreen(px)
b=getBlue(px)
tot=((r+g+b)/9)+24
playNote(tot,100,127)
您可能需要添加一些关于getPixels的更多信息。就像它返回的一样。此外,它看起来并不像您意识到内置范围功能的用途。在你的循环中,如果图片的宽度是10,图片的高度是10,那么你不会从该范围调用中得到任何东西。范围第一个数字是从哪里开始的范围,第二个是结束它的地方,第三个是步长。 4将是正确的步长,但如果说你想枚举的宽度,你会做范围(0,W,4) – Robbie 2010-03-02 17:08:25