Processing:Примеры/Массив пикселей
Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Содержание | Среда разработки Processing | Справочник языка Processing | Библиотеки | Примеры | Режимы программирования |
Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.
Описание[1]
Наведите курсор на экран, зажмите кнопку мыши и начните водить ей по экрану. Сообразно перемещению курсора должен меняться и цвет экрана. Кроме того, можно нажать на какую-нибудь клавишу, и тогда на экране появится изображение и метка, показывающая, какой именно пиксель этого изображения в данный момент считывается.
Если ничего не делать, эта программа будет поочередно считывать цвет каждого пикселя изображения, а затем окрашивать экран в этот цвет.
Пример
PImage img;
int direction = 1;
float signal;
void setup() {
size(640, 360);
noFill();
stroke(255);
frameRate(30);
img = loadImage("sea.jpg");
}
void draw() {
if (signal > img.width*img.height-1 || signal < 0) {
direction = direction * -1;
}
if (mousePressed) {
int mx = constrain(mouseX, 0, img.width-1);
int my = constrain(mouseY, 0, img.height-1);
signal = my*img.width + mx;
} else {
signal += 0.33*direction;
}
int sx = int(signal) % img.width;
int sy = int(signal) / img.width;
if (keyPressed) {
set(0, 0, img); // fast way to draw an image
point(sx, sy);
rect(sx - 5, sy - 5, 10, 10);
} else {
color c = img.get(sx, sy);
background(c);
}
}
См.также
Внешние ссылки
Примеры на Processing | |
---|---|
Основы |
|
Продвинутые графические эффекты |
|
Примеры из сторонних библиотек |