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