Обработка: прозрачный массив изображений

Я новичок в обработке, и я застрял на этом:

Цель: я хочу создать массив прозрачных изображений, отображаемых по одному после каждого mousePressed ().

Проблема: то, что происходит, происходит из-за того, что на всех изображениях присутствует альфа-прозрачность, они перекрываются и возникает кумулятивный эффект. В идеале я хочу очистить его, а затем показать другое изображение.

PGraphics pg;
PImage[] 
myImageArray = new PImage[12];

void setup() {
  //background (255,0);
  size(1024, 1024,P2D);

 for (int i=0; i<myImageArray.length; i++) {
    myImageArray[i] = loadImage( "A-0" + i + ".png");
    pg = createGraphics (1000,1000);
  }
}

void draw() {
 pg.beginDraw (); 
 pg.image(myImageArray[(int)random(12)], 0, 0, 1000, 1000);
 pg.endDraw ();

 image(pg,0,0); 
 noLoop ();
}
void mousePressed() {

  pg = createGraphics(1000,1000);
 if (frameCount > 1) {
  pg.beginDraw ();
  pg.clear();
  pg.endDraw ();
loop ();

  }

}

Любой совет будет очень признателен!

Структурированный массив Numpy
Структурированный массив Numpy
Однако в реальных проектах я чаще всего имею дело со списками, состоящими из нескольких типов данных. Как мы можем использовать массивы numpy, чтобы...
T - 1Bits: Генерация последовательного массива
T - 1Bits: Генерация последовательного массива
По мере того, как мы пишем все больше кода, мы привыкаем к определенным способам действий. То тут, то там мы находим код, который заставляет нас...
Что такое деструктуризация массива в JavaScript?
Что такое деструктуризация массива в JavaScript?
Деструктуризация позволяет распаковывать значения из массивов и добавлять их в отдельные переменные.
1
0
201
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Похоже, вы просто ищете функцию background(). Функция background() очищает старые кадры, рисуя сплошным цветом в качестве фона.

Вы можете найти больше информации в ссылка.

Привет, спасибо за ответ! Как вы сказали, функция background () заполняет его сплошным цветом, которого я стараюсь избегать, чтобы сохранить альфа-прозрачность. Вот почему я использую PGraphics, а не просто PImage.

K___S 01.05.2018 18:44

@K___S Само окно не прозрачное? Вызовите функцию background() внутри функции draw(), чтобы перерисовать фон окна и удалить старые кадры.

Kevin Workman 01.05.2018 18:47

Привет, Кевин, большое спасибо! Мое замешательство возникло из-за того, что я подумал, что вызову background (); в draw () он сохранится вместе с фоном, но этого не произошло.

K___S 01.05.2018 18:57

@K___S Что вы имеете в виду, говоря о сохранении с фоном?

Kevin Workman 01.05.2018 18:59

Я подумал, что если я вызову background (255); в draw(); и вызову pg.save ();, он сохранит .png с указанным цветом фона. Имеет ли это смысл?

K___S 01.05.2018 19:12

@K___S Ох, понятно. В этом есть смысл, но этого не произойдет. Пока вы звоните в pg.save(), будет сохранено только то, что вы нарисовали на pg. Если вы хотите сохранить то, что показано на экране, вы можете вызвать save() или saveFrame() без переменной pg.

Kevin Workman 01.05.2018 19:27

@K__S, пожалуйста, не забудьте поставить зеленую отметку, если Кевин Уоркман ответил на ваш вопрос.

mourad 01.05.2018 19:58

Другие вопросы по теме