P5.JS: Сохранение генеративного искусства (с использованием шума()) в виде изображений на устройстве и их повторная загрузка в HTML.

Я работаю над генеративным искусством, используя p5.js и функцию noise(). Я следил за уроками Дэниела Шиффмана, но его конечный продукт всегда заканчивается постоянной генерацией, как вечная анимация.

Со своей стороны, я хотел бы сохранить эти автоматически сгенерированные холсты в виде изображений на своем устройстве. Я предполагаю, что в моей идее будут проблемы, потому что эти формы генерируются во времени, и желание их использовать в качестве неподвижных изображений лишит их процесса генерации?

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

Мой код:

var inc;



function setup() {
  createCanvas(800, 800);
  background(0);
  noFill();
  t = 0;
}

function draw() {
  var r = 255 * noise(t+10);
  var g = 255 * noise(t+15);
  var b = 255 * noise(t+20);
  stroke(r,g,b, 18);
  strokeWeight(2);
  fill(r,g,b,5);
  var x1 = width * noise(t);
  var x2 = width * noise(t+1);
  var x3 = width * noise(t+2);
  var x4 = width * noise(t+3);
  var y1 = height * noise(t+4);
  var y2 = height * noise(t+5);
  var y3 = height * noise(t+6);
  var y4 = height * noise(t+7);

  quad(x1,y1,x2,y2,x3,y3,x4,y4);
  t += 0.01;


  //noLoop();
}

person user8890965    schedule 11.11.2018    source источник


Ответы (1)


Вы можете просто щелкнуть правой кнопкой мыши по холсту и сохранить то, что отображается в данный момент, как изображение.

Или вы можете использовать одну из функций save*() в ссылке. Хорошо бы начать с функции save() или функции saveCanvas(). Функция saveFrames() может сохранять короткие анимации.

Или вы можете использовать библиотеку, например ccapture.js, или такой инструмент, как ScreenToGif, если вы хотите сохранить анимированный файл.

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

Какой подход вы выберете, полностью зависит от того, как вы хотите, чтобы ваша программа вела себя. Я бы порекомендовал попробовать несколько разных подходов и посмотреть, какой из них вам больше нравится.

person Kevin Workman    schedule 11.11.2018