Processing:Примеры/Яркость: различия между версиями
Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Myagkij (обсуждение | вклад) |
Myagkij (обсуждение | вклад) Нет описания правки |
||
(не показана 1 промежуточная версия 1 участника) | |||
Строка 1: | Строка 1: | ||
{{Processing панель перехода}} | {{Processing панель перехода}} | ||
{{Перевод от Сubewriter}} | {{Перевод от Сubewriter}} | ||
{{Myagkij-редактор}} | {{Myagkij-редактор}} | ||
=Описание<ref>[https://processing.org/examples/brightness.html processing.org - Brightness by Daniel Shiffman]</ref>= | =Описание<ref>[https://processing.org/examples/brightness.html processing.org - Brightness by Daniel Shiffman]</ref>= | ||
Строка 78: | Строка 75: | ||
}} | }} | ||
<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS | <syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS"> | ||
PImage img; | PImage img; | ||
Строка 133: | Строка 130: | ||
<references /> | <references /> | ||
{{Навигационная таблица/Портал/Processing}} | |||
{{Навигационная таблица/ | |||
Текущая версия от 07:45, 27 августа 2023
Содержание | Среда разработки Processing | Справочник языка Processing | Библиотеки | Примеры | Режимы программирования |
Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.
Описание[1]
Этот пример демонстрирует, как изменять яркость части изображения. Фрагмент изображения, у которого нужно поменять яркость, рассчитывается исходя из его расстояния до курсора мышки.
Пример
PImage img;
void setup() {
size(640, 360);
frameRate(30);
img = loadImage("moon-wide.jpg");
img.loadPixels();
// массив pixels[] нужно загрузить только один раз,
// поскольку манипуляции с ним выполняются только в блоке draw(),
// но не для отрисовки фигур:
loadPixels();
}
void draw() {
for (int x = 0; x < img.width; x++) {
for (int y = 0; y < img.height; y++ ) {
// на основе 2-мерных данных рассчитываем значение «loc»,
// где будут храниться данные о месторасположении пикселя:
int loc = x + y*img.width;
// извлекаем из изображения значения R,G,B:
float r,g,b;
r = red (img.pixels[loc]);
//g = green (img.pixels[loc]);
//b = blue (img.pixels[loc]);
// рассчитываем уровень яркости,
// опираясь на близость фрагмента изображения к курсору мышки:
float maxdist = 50;//dist(0,0,width,height);
float d = dist(x, y, mouseX, mouseY);
float adjustbrightness = 255*(maxdist-d)/maxdist;
r += adjustbrightness;
//g += adjustbrightness;
//b += adjustbrightness;
// задаем границы для диапазона цветовых (RGB) значений,
// этот диапазон должен быть 0-255:
r = constrain(r, 0, 255);
//g = constrain(g, 0, 255);
//b = constrain(b, 0, 255);
// задаем новое цветовое значение
// и присваиваем его пикселю на экране:
//color c = color(r, g, b);
color c = color(r);
pixels[y*width + x] = c;
}
}
updatePixels();
}
См.также
Внешние ссылки
Примеры на Processing | |
---|---|
Основы |
|
Продвинутые графические эффекты |
|
Примеры из сторонних библиотек |