-
В этом разделе мы возьмем уже изученные приемы кодирования и знания о
-
изображениях, пикселях и RGB числах для того, чтобы соединить их воедино. Итак, примеры
-
в этом разделе будут касаться работы над каждым пикселем отдельно. А затем, в следующем
-
разделе мы будем обрабатывать тысячи пикселей одновременно. Итак,
-
для начала, я хочу взглянуть на это изображение под названием x.png. Оно очень маленькое, сейчас я
-
покажу его. Это изображение разрешением 10*10 пикселей, вот оно, отмечено на
-
странице. Это черное изображение с белым крестом на нем. И, как я уже говорил, оно
-
очень маленькое. Но, мы увидим его в большем размере чуть позже. Итак, PNG это
-
формат изображения, "переносимая сетевая графика". Точно как JPEG - это тоже формат,
-
который, возможно, наиболее вам знаком. Итак, они оба - форматы изображения.
-
Итак в этом примере я хочу показать вам код, который загрузит изображение x.png
-
и отобразит его. Это будет первый, очень простой пример кода,
-
который работает с изображениями. Итак, код вы можете увидеть здесь, а я расскажу,
-
что означает каждая строка. Итак, первая строка image = new SimpleImage(x.png)
-
Правая часть строки загружает
-
изображение x.png в память. А, о том, что такое память, мы поговорим позже.
-
Достаточно сказать, что изображение поступает в компьютер и он может
-
с ним работать. Как только я написал знак равенства,
-
изображение превращается в переменную, которая называется "image", точно такую же как
-
и другие переменные, которые мы видели раньше. Вторая строка image.setZoom(20)
-
означает функцию приближения картинки.
-
И в данном случае изображение увеличится в 20 раз.
-
Мы используем это для того, чтобы рассмотреть маленькое изображение и
-
приблизить его. И, в конце, print(image) выполняет ту функцию, которую мы уже видели.
-
А именно отображает картинку
-
с правой стороны, как текст и числа, которые мы уже видели раньше.
-
Попробуйте. Если нажать кнопку "Run", то мы увидим изображение x.png.
-
И мы можем посчитать, один, два, три, четыре... Мы можем посчитать,
-
что это изображение с разрешением 10 на 10 пикселей. И оно отображается здесь,
-
увеличенное в 20 раз. Вообще-то, я могу изменить число здесь. И, если я поменяю его
-
на 10, а затем опять нажму "Run", то оно станет увеличенным только в 10 раз.
-
А если я напишу 40, и нажму "Run", то оно станет гораздо больше. Итак, я верну значение 20.
-
Сейчас будет первый небольшой пример кода,
-
но это только начало и дальше мы научимся загружать и работать с изображениями. Итак,
-
чтобы было немного интереснее, я расширю код, чтобы работать
-
с каждый пикселем в отдельности. Я добавляю пару строк в середину
-
программы здесь, и пишу pixel=image.getPixel(0,0). Что это дает?
-
Программа обращается к изображению и ссылается на конкретный пиксель с
-
координатами x, y, которым мы дали значение 0,0. Это
-
верхний левый пиксель, т.е. программа обращается к верхнему левому пикселю и
-
затем переходит к следующей строке pixel.setRed(255). Эта строка
-
означает функцию setRed, которая берет число
-
в скобках и, в независимости от того, что это за число,
-
она приравнивает значение красного цвета в данном пикселе к этому числу.
-
Итак, давайте посмотрим. В коде мы видим, что программа будет обращаться к
-
верхнему левому пикселю, который был черным. А как мы помним,
-
каждый пиксель имеет определенные значения красного, зеленого и синего цветов. И программа
-
меняет значение красного цвета в пикселе и меняет его на 255, просто заменяет то значение,
-
которое там было раньше. Когда мы посмотрим, мы увидим, что пиксель стал красного цвета.
-
Итак, для того чтобы изменить значение красного цвета мы использует функцию setRed. По аналогии
-
мы меняем значение зеленого цвета функцией setGreen и синего цвета - функцией setBlue. Получается три функции: setRed, setGreen and setBlue.
-
Используя эти функции мы можем изменить значения красного, зеленого и синего цветов.
-
Еще надо упомянуть, что
-
есть отдельная страничка, которая называется
-
Image Functions Reference, где расписаны все три функции в таблице, которую
-
вы, возможно, захотите использовать, когда будете выполнять упражнения.
-
Но в лекциях я буду рассказывать
-
о тех функциях, которые буду использовать. Для того, чтобы лучше понять,
-
как работают эти функции, потренируйтесь на упражнениях.
-
Используйте их, чтобы изменить или сделать что-либо.
-
Итак, это самый простой пример кода для разминки.
-
А здесь в таблице я написал парочку примеров потруднее,
-
например, установить значения зеленого, желтого и т.д. Давайте пробежимся по ним.
-
Для каждого из них справа есть кнопка "show",
-
которую вы можете нажать и посмотреть решение программы. Позже вы можете вернуться к этой странице и
-
попробовать самостоятельно сделать то, что я буду сейчас делать или
-
придумать другие примеры. Давайте попробуем сделать первый пример.
-
Для начала я нажму "run", чтобы посмотреть, как отобразиться код. Итак, сейчас программа
-
берет пиксель (0,0) и делает его красным. Мы это уже видели.
-
В первом примере нужно сделать пиксель (0,0)
-
зеленым. Условие дано словами,
-
его нужно преобразовать в код,
-
т.е. записать, используя цифры и символы.
-
Итак, какова последовательность действий? Вы должны как бы
-
перевести задание с человеческого языка на компьютерный. В упражнении необходимо
-
сделать пиксель зеленым. Итак, я собираюсь вместо функции setRed
-
написать функцию setGreen. Давайте попробуем. И вот, что у нас получилось!
-
У нас появился зеленый пиксель. В следующем упражнении
-
необходимо сделать пиксель (0,0) желтым. Для того, чтобы это сделать,
-
нужно для красного и зеленого цветов поставить значения 255. Как мы знаем,
-
желтый состоит из красного и зеленого. Мы меняем красный
-
и зеленый. Я просто скопирую эту строку, вставлю ее здесь и изменю это на красный.
-
У меня есть ссылка на пиксель (0,0)
-
и я могу делать с ним сразу несколько функций. В первой функции setRed я задаю значение красного цвета.
-
А во второй setGreen во второй строке - зеленого.
-
Программа выполнит код подряд строку за строкой.
-
Давайте попробуем. Получился желтый!