java - 保存帧并使用处理 2 将它们放入网格中

标签 java processing

我想在这里完成两项任务,我让它们在两个处理文件中单独工作,但我希望它们在一个处理文件中工作。我已经部分工作,但我需要帮助的两个部分是:

1:我想在一个文件中保存25张图片,从0开始(目前是从1开始)

2:我想将这些图像加载到网格中

任何帮助都会很棒!

import processing.pdf.*;
import geomerative.*;
import java.util.Calendar;
PImage[] images = new PImage[25];
int ic;
PImage img;
RFont font;
int lastTime = 1;
int test = new File("/Processing2/data2").listfiles.length;
boolean savePDF = false;

void setup(){
  size(1000, 1000);

background(0);
  for ( int i = 0; i< images.length; i++ )
{
images[i] = loadImage( i + ".png" );   // make sure images "0.png" to "25.png" exist
}
}

void draw() {    
// Save images
stroke (random(75,150), random (200,256), random(50,150));
float distance = random(200);
strokeWeight(1);
line (0, distance, 200, distance);    
}    
    if( millis() >= 750){
    saveFrame("data/##.png");    
}    
//Load saved images into a grid

if (test ==25){
 ic= 0;
  float tileCountX = 5;
  float tileCountY = 5;
  float stepX = width/tileCountX;
  float stepY = height/tileCountY;
  for (float gridY = 0; gridY < height; gridY += stepY){
    for (float gridX = 0; gridX < width; gridX += stepX){
           image(images[ic], gridX, gridY, stepX, stepY);
           ic++;
    }
}
 }    
 else {     
 }
  }

最佳答案

您尝试合并两个项目,但没有删除不使用的代码。由于您仅将这 25 个图像绘制到屏幕上一次,因此您实际上不需要使用继续运行的 draw() 方法,除非您调用 noLoop() 功能。另外,如果您确实只想执行一次,则可以不使用 setup()。否则,您可以将大部分内容放在设置中,但仍然跳过使用绘制。

以下是您的任务的精简版本。

PImage[] images = new PImage[25];
size(1000,1000);

for(int i = 0; i < images.length; i++) {
  images[i] = loadImage(i + ".png");   // make sure images "0.png" to "24.png" exist
}

int i = 0;
float tileCountX = 5;
float tileCountY = 5;
float stepX = width/tileCountX;
float stepY = height/tileCountY;
for (float gridY = 0; gridY < height; gridY += stepY) {
  for (float gridX = 0; gridX < width; gridX += stepX) {
    image(images[i++], gridX, gridY, stepX, stepY);
  }
}

编辑

根据您的评论,也许这就是您想要做的......

PImage[] images = new PImage[25];
size(1000,1000);

// Save images
for (int i = 0; i < 25; i++) {
  try {
    Thread.sleep(750); //sleep 750 milliseconds before continuing
  } catch(InterruptedException ex) {
    ex.printStackTrace();
  }
  stroke (random(75, 150), random (200, 256), random(50, 150));
  float distance = random(200);
  strokeWeight(1);
  line (0, distance, 200, distance);    
  save(i+".png");
}
// Load images
for(int i = 0; i < images.length; i++) {
  images[i] = loadImage(i + ".png");   // make sure images "0.png" to "24.png" exist
}

// Display images
int i = 0;
float tileCountX = 5;
float tileCountY = 5;
float stepX = width/tileCountX;
float stepY = height/tileCountY;
for (float gridY = 0; gridY < height; gridY += stepY) {
  for (float gridX = 0; gridX < width; gridX += stepX) {
    image(images[i++], gridX, gridY, stepX, stepY);
  }
}

关于java - 保存帧并使用处理 2 将它们放入网格中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29607095/

相关文章:

processing - 处理中的绝对鼠标位置

java - 无法通过单击关闭 X 按钮关闭框架

java - 使用泛型的工厂对象创建者

formatting - 有没有美化处理草图的扩展?

java - 在 Java/处理中清空数组

java - 多态 PApplet 处理 NullPointerException

java - 执行 PHPUnit_Selenium

java - Ant 在我的 stdout 前加上 [java]

java - 快速迭代具有 5100 万个素数的数据结构

java - 如何使用像素数组形成字符串并读取数组的所有字符值