将画布导出为p5js中的GIF/PNG格式

2022-08-23 00:00:00 p5.js gif javascript animated-gif

我使用原子编辑器。我想用我的画布制作20秒GIF。 saveFrames()有限制(我猜)。它允许将.png文件保存为较短的gif(3-5秒),即使我键入saveFrames("aa","png",15,22);

我发现了CCapture.js,但找不到任何用于导出画布的代码示例。

它不必导出为GIF;但我至少希望保存.png快照 我的动画在画布上无限。我该怎么做?

我的p5.js动画代码:

数据-lang="js"数据-隐藏="假"数据-控制台="真"数据-巴贝尔="假">
var x = 0;
var speed = 10;
var d1 = 100;
var d2 = 100;

function setup() {
  createCanvas(600, 400);
  background(0);
  //saveFrames("aa","png",15,22);
}

function draw() {
  stroke(random(100, 255), 0, random(100, 190));
  strokeWeight(1.5);
  ellipse(x, 100, d1, d1);
  x = x + speed;
  d1 = d1 - 0.6;
  
  if (x > width || x < 0) {
    speed = speed * -1;
    fill(speed * 51);
  }
  
  ellipse(x, 300, d1, d1);
  ellipse(x, 200, 50, 50);
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.7.1/p5.min.js"></script>

GIF

我一直在开发一个支持推荐答案导出的新库p5.createLoop。

这将运行草图,然后以相同的帧速率呈现GIF。


function setup() {
  createCanvas(600, 400);
  background(0);
  frameRate(22)
  createLoop({duration:15,gif:true})
}

这里是一个codePen,其中包含完整的示例。大约需要两分钟,超过50MB,完全值得

相关文章