Напишите функцию, называемую listenToPicture, которая принимает одно изображение в качестве аргумента. Сначала он показывает картину. Далее, он будет циклически проходить каждый 4-й пиксель в каждой четвертой строке и делать следующее. Он вычислит общее количество красного, зеленого и синего уровней пикселя, разделите его на 9, затем добавьте результат в 24. Это число будет номером ноты, воспроизводимым в playNote. Это означает, что чем темнее пиксель, тем ниже заметка; чем светлее пиксель, тем выше нота. Он будет воспроизводить эту ноту на полном объеме (127) на десятую часть секунды (100 миллисекунд). Каждый раз, когда он перемещается в новую строку, он выводит номер строки (значение y) на консоли. Ваша основная функция попросит пользователя выбрать файл с изображением. Он будет печатать количество замещаемых нот (число пикселей на изображении, деленное на 16, почему?). Затем он вызовет функцию listenToPicture.
Вот что я до сих пор, и я не уверен, как настроить цикл через каждые 4-е пикселы в каждой четвертой строке. Любая помощь будет очень признательна.
def main():
pic= makePicture( pickAFile())
printNow (getPixels(pic)/16)
listenToPicture(pic)
def listenToPicture(pic):
show(pic)
w=getWidth(pic)
h=getHeight(pic)
for px in getPixels(pic):
r= getRed(px)
g= getGreen(px)
b= getBlue(px)
tot= (r+g+b)/9
playNote= tot + 24