這是從一個課堂作業從像素彈奏的音符:的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