Processing:Примеры/Массив пикселей: различия между версиями

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Нет описания правки
 
(не показана 1 промежуточная версия 1 участника)
Строка 1: Строка 1:
{{Processing панель перехода}}
{{Processing панель перехода}}
{{Перевод от Сubewriter}}
{{Перевод от Сubewriter}}
{{Myagkij-редактор}}
{{Myagkij-редактор}}
{{Черновик}}


=Описание<ref>[https://processing.org/examples/pixelarray.html processing.org - Pixel Array]</ref>=
=Описание<ref>[https://processing.org/examples/pixelarray.html processing.org - Pixel Array]</ref>=
Строка 73: Строка 70:
}}
}}


<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS" enclose="div">
<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS">
PImage img;
PImage img;
int direction = 1;
int direction = 1;
Строка 119: Строка 116:
<references />
<references />


{{SEO
{{Навигационная таблица/Портал/Processing}}
|Заголовок статьи=Processing: Массив пикселей / Онлайн справочник - wikihandbk.com
|Ключевые слова=processing, Массив пикселей,Массив пикселей в processing, пример Массив пикселей, пример Массив пикселей в processing
|Описание статьи=
|Изображение статьи для Open Graph=
|Адрес страницы для schemaNewsArticle=<nowiki>http://wikihandbk.com/wiki/Processing:Примеры/Массив пикселей</nowiki>
|Изображение статьи для schemaNewsArticle=<nowiki></nowiki>
|Высота изображения статьи для schemaNewsArticle=
|Ширина изображения статьи для schemaNewsArticle=
|Дата публикации для schemaNewsArticle=2018-07-31
|Автор=Мякишев Е.А.
|Издатель=myagkij
|Логотип издателя для schemaNewsArticle=<nowiki>http://wikihandbk.com/ruwiki/images/6/61/Tech_geek_logo_1x.jpg</nowiki>
|Ширина логотипа издателя для schemaNewsArticle=60
|Высота логотипа издателя для schemaNewsArticle=45
}}
{{Навигационная таблица/Справочник языка Processing}}
{{Навигационная таблица/Processing/Примеры}}
{{Навигационная таблица/Телепорт}}

Текущая версия от 07:56, 27 августа 2023

Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.


Описание[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);
  }
}

См.также

Внешние ссылки